Python 类不识别属性?
这让我快发疯了。我想让程序打印“Frank”这个名字。但是,我得到一个错误,上面写着“AttributeError:'人'对象没有'called'属性”。我在网上搜索过,据我所知,我做的一切都是对的,但由于我遇到了一个错误,显然我没有 我正在使用Python 2Python 类不识别属性?,python,python-2.x,Python,Python 2.x,这让我快发疯了。我想让程序打印“Frank”这个名字。但是,我得到一个错误,上面写着“AttributeError:'人'对象没有'called'属性”。我在网上搜索过,据我所知,我做的一切都是对的,但由于我遇到了一个错误,显然我没有 我正在使用Python 2 class People(object): def __init__(self, name): self.name = name def called(self): return se
class People(object):
def __init__(self, name):
self.name = name
def called(self):
return self.name
frank = People("Frank")
print frank.called()
我做错了什么?看起来像是缩进问题 点是空格,箭头是制表符 即使选项卡在文本编辑器中看起来相当于四个空格,Python也可能不会这样解释它们。因此,永远不要将制表符和空格混合使用。只使用一个或另一个。最好是空间
我看到你正在使用记事本++。为了便于调试,您可以通过转到查看->显示符号并选中“显示空白和选项卡”,将其配置为将选项卡显示为箭头。您还可以通过设置->首选项->语言菜单/tab设置->替换为空格,将其配置为在按下tab键时插入四个空格,而不是一个制表符。您的代码对我来说很好。在Python中,缩进是语法的一部分-可能您的
调用的
方法是在类外定义的,作为一个独立函数(或者作为\uuuu init\uuuu
方法的本地函数)。请仔细检查缩进。添加图片以显示我真的得到了错误,这是我在程序中的所有代码…是的!这正是问题所在。我混合了空格和制表符。将它们全部更改为制表符-问题解决了。(我会用谷歌搜索为什么首选空格)。@MarijkeVonk为什么首选空格的简短回答:不同的编辑器会将选项卡显示为不同的宽度,但空格始终是空格。这是关于一致性的,不会对空格感到惊讶。@MarijkeVonk抱歉忘记了时间段:)。这太经典了:)关于和的说明,建议使用空格。