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 而不是制表符。