【发布时间】:2012-12-06 07:46:11
【问题描述】:
第一次在我的一个项目中使用类,我似乎在我无法选择的地方犯了一个错误。
class aiRespond:
def generateResponse( self, external_input ):
return external_input
def giveResponse( self, external_input ):
self.generateResponse(self, external_input)
aiResponder = aiRespond()
retrieve_ai_response = aiResponder.giveResponse()
while 1:
external_input = raw_input("> ")
print retrieve_ai_response(external_input)
错误:
TypeError: unbound method giveResponse() must be called with aiRespond instance as first argument (got str instance instead)
我尝试了许多不同的结构方式。我希望retrieve_ai_response = aiRespond.giveResponse 排成一行,因为我会有很多类似的事情。
有人介意指出我要去哪里以及为什么吗?
【问题讨论】:
-
我也强烈建议您使用新型类(搜索差异的定义以及如何使用它们)。 PEP 8,Python 风格指南,也是您可能喜欢阅读的内容(标准 Python 代码将使用其命名约定,其名称类似于
AIRespond、generate_response和ai_responder)。 -
@ChrisMorgan 谢谢你的建议。我对 PEP 8 特别感兴趣,因为我看到其他人也向其他海报提出了这个建议。新式课程似乎有点令人困惑,但我正在浏览它们的一些视频教程。谢谢!
标签: python class methods python-2.7 typeerror