Class 不识别属性?
Class does not recognize attribute?
这让我发疯。我希望程序打印名称 "Frank"。但是,我收到一条错误消息 "AttributeError: 'People' object has no attribute 'called'"。我在网上搜索过,据我所知,我做的一切都是正确的,但由于我收到错误,显然我不是。
我正在使用 Python 2.
class People(object):
def __init__(self, name):
self.name = name
def called(self):
return self.name
frank = People("Frank")
print frank.called()
我做错了什么?
看起来像是缩进问题。
点是 space,箭头是制表符。
即使在您的文本编辑器中制表符 看起来 相当于四个 space,但 Python 可能不会这样解释它们。因此,您永远不应混用制表符和 space。只使用一个或另一个。最好是spaces.
我看到您正在使用 Notepad++。为了便于调试,您可以通过转到“查看”->“显示符号”并选中 "Show White Space and TAB",将其配置为将选项卡显示为箭头。您还可以通过设置 -> 首选项 -> 语言 Menu/Tab 设置 -> 替换为 space 将其配置为在按下制表键时插入四个 space 而不是制表符。
这让我发疯。我希望程序打印名称 "Frank"。但是,我收到一条错误消息 "AttributeError: 'People' object has no attribute 'called'"。我在网上搜索过,据我所知,我做的一切都是正确的,但由于我收到错误,显然我不是。
我正在使用 Python 2.
class People(object):
def __init__(self, name):
self.name = name
def called(self):
return self.name
frank = People("Frank")
print frank.called()
我做错了什么?
看起来像是缩进问题。
点是 space,箭头是制表符。
即使在您的文本编辑器中制表符 看起来 相当于四个 space,但 Python 可能不会这样解释它们。因此,您永远不应混用制表符和 space。只使用一个或另一个。最好是spaces.
我看到您正在使用 Notepad++。为了便于调试,您可以通过转到“查看”->“显示符号”并选中 "Show White Space and TAB",将其配置为将选项卡显示为箭头。您还可以通过设置 -> 首选项 -> 语言 Menu/Tab 设置 -> 替换为 space 将其配置为在按下制表键时插入四个 space 而不是制表符。