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

测试Habit类方法遇NameError:initiate_habit未定义,求排查

问题原因及解决方法

错误根源

initiate_habit是Habit类的实例方法,必须通过Habit类的实例对象调用,你直接全局调用initiate_habit(),Python找不到这个全局函数,因此抛出NameError。

修正后的测试代码

通过已创建的habit实例调用该方法即可:

habit = Habit('Read', 'Read 15 pages daily')
habit.initiate_habit()  # 用实例对象调用类内的方法

额外优化建议

  • 当前initiate_habit方法中收集的habit_name、type等变量没有与实例属性绑定,方法执行后这些变量会被销毁,建议将其赋值给实例属性,比如self.habit_type = type、self.duration = duration,方便后续逻辑复用。
  • 如果该方法的作用是创建新的Habit实例而非修改现有实例,可考虑将其设计为类方法或静态方法。

内容的提问来源于stack exchange,提问作者B.Copeland

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:55:24