AttributeError:“函数”对象没有属性“ x”

时间:2020-08-18 21:20:32

标签: python attributeerror

对不起,我有点初学者,但是为什么这样做:

class myClass:
    def myDef(self):
        x = 5


print(myClass.myDef.x)

导致此错误:

print(myClass.myDef.x)
AttributeError: 'function' object has no attribute 'x'

我把变量叫错了吗?

有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

这个问题有点含糊,但是特别是当您提到您是一个初学者时,我将根据一般使用类的方式来猜测一下您可能想在这里做什么,希望对您有所帮助。

似乎这里的可能意图是设置类实例的属性(而不是设置函数的属性,这将是一件不寻常的事情)。您需要在self.x方法中使用x来代替局部变量myDef,因为x完成后myDef的值将被破坏。 。您还必须创建类的实例,然后再在该实例上调用myDef方法。然后可以打印实例的x属性。

class MyClass:
    def myDef(self):
        self.x = 5  # this sets an instance variable

myObj = MyClass()  # this creates an instance of your class

myObj.myDef()  # this calls the `myDef` method, with `self` pointing to `myObj`

print(myObj.x)