对不起,我有点初学者,但是为什么这样做:
class myClass:
def myDef(self):
x = 5
print(myClass.myDef.x)
导致此错误:
print(myClass.myDef.x)
AttributeError: 'function' object has no attribute 'x'
我把变量叫错了吗?
有什么帮助吗?
答案 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)