You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中database类的__init__构造函数被调用两次的原因是什么

database类构造函数两次打印日期的排查方案
  • 优先确认BulletinInterface实例化次数:你代码中database的实例化逻辑绑定在BulletinInterface的构造方法内,若BulletinInterface被创建了两次,database自然会被实例化两次
  • 排查模块重复导入问题:如果database所在模块的顶层存在直接实例化BulletinInterface的代码,同一模块被不同路径多次导入时,Python会执行两次模块顶层代码,触发两次实例化
  • 排查框架热重载影响:你使用的是Kivy框架,若开启了调试模式的热重载功能,代码修改后自动重载时旧实例未销毁、新实例完成创建,也会出现两次打印的情况
  • 可直接打印调用栈定位触发源,在database的__init__中加入以下代码,就能直接看到两次构造分别是哪里调用的:
import traceback
def __init__(self):
    print("当前database实例化的调用栈:")
    traceback.print_stack()
    self.today = date.today()
    print(self.today)

内容的提问来源于stack exchange,提问作者fathergriffin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 06:48:02