AttributeError:“DateTemplates”对象没有属性“_to_date”
Posted
技术标签:
【中文标题】AttributeError:“DateTemplates”对象没有属性“_to_date”【英文标题】:AttributeError: 'DateTemplates' object has no attribute '_to_date' 【发布时间】:2013-02-16 13:20:05 【问题描述】:here 发布的代码,我尝试编译该程序,但每次编译都会给我这个回溯:
回溯(最近一次通话最后): _run_module_as_main 中的文件“/usr/lib/python2.7/runpy.py”,第 162 行 "__main__", fname, 加载器, pkg_name) _run_code 中的文件“/usr/lib/python2.7/runpy.py”,第 72 行 run_globals 中的执行代码 文件“/home/ceradon/cerabot-rewrite/cerabot/tasks/date_templates.py”,第 187 行,在 机器人 = 日期模板() 文件“/home/ceradon/cerabot-rewrite/cerabot/tasks/date_templates.py”,第 19 行,在 __init__ 超级(日期模板,自我).__init__() __init__ 中的文件“cerabot/bot.py”,第 51 行 self.setup() 文件“/home/ceradon/cerabot-rewrite/cerabot/tasks/date_templates.py”,第 110 行,在设置中 self._load_templates() _load_templates 中的文件“/home/ceradon/cerabot-rewrite/cerabot/tasks/date_templates.py”,第 61 行 self._to_date.append(template.get(1).value.lower())我迷路了,谁能帮忙解决这个问题?
【问题讨论】:
错误发生在“Bot”类的构造函数中,因此您也应该提供该代码.. Here 是“Bot”类的代码。 两个类都没有_to_date
方法,所以你期待...什么?
self._to_date 是一个列表对象。在 DateTemplates.__init__() 的前几行中。
你说得对,这非常令人困惑,因为在表示错误发生的__init__
中甚至都没有调用start
和_load_templates
。很奇怪。您不会碰巧将start
方法重命名为setup
,是吗?
【参考方案1】:
当您调用super(DateTemplates, self).__init__()
时,它运行Bot.__init__
,它调用self.setup()
,它运行DateTemplates.setup()
,但是这发生在您初始化self._to_date
之前,因此还没有要附加的列表。将 DateTemplates.__init__
中的 super
调用移动到方法的末尾,这应该可以工作。
【讨论】:
以上是关于AttributeError:“DateTemplates”对象没有属性“_to_date”的主要内容,如果未能解决你的问题,请参考以下文章
AttributeError: 'RDD' 对象没有属性 'show'
AttributeError:“NumpyArrayIterator”对象没有属性“类”
AttributeError:模块 'dbus' 没有属性 'lowlevel'