Python 在u_init__内定义的变量未读取
我所理解的是在initmagic方法中定义变量。我读了,但下一个方法是不读它 有什么帮助吗Python 在u_init__内定义的变量未读取,python,Python,我所理解的是在initmagic方法中定义变量。我读了,但下一个方法是不读它 有什么帮助吗 class Foo: var = 9 def __init__(self, a, b): self.i = a self.j = b def add(self, a, b): print a+b bar = Foo(5, 5) # create object print bar.var # access class va
class Foo:
var = 9
def __init__(self, a, b):
self.i = a
self.j = b
def add(self, a, b):
print a+b
bar = Foo(5, 5) # create object
print bar.var # access class variable
o/p:
九,
为什么不打印
十,
9您调用了变量
self.i
和self.j
,而不是a
和b
,因此您需要这样引用它们<代码>添加()的定义如下:
def add(self):
print self.i+self.j
您调用了变量
self.i
和self.j
,而不是a
和b
,因此需要这样引用它们<代码>添加()的定义如下:
def add(self):
print self.i+self.j
如果要在
add
中运行代码,必须调用它
bar = Foo(5, 5) # create object
bar.add(5,5)
print bar.var # access class variable
如果要在
add
中运行代码,必须调用它
bar = Foo(5, 5) # create object
bar.add(5,5)
print bar.var # access class variable
为什么它会打印10?你认为这是从哪里来的?为什么会打印10?你认为这是从哪里来的?但更重要的是,OP甚至没有调用
add
方法。@DanielRoseman你说得对。当我第一次阅读这个问题时,我甚至没有注意到。所有变量都需要在init方法中定义吗?但更重要的是,OP甚至没有调用add
方法。@DanielRoseman你说得对。当我第一次阅读这个问题时,我甚至没有注意到。所有变量都需要在init方法中定义吗?所有变量都需要在init方法中定义吗?@Riomario,所有实例变量(附加到对象的变量)都需要定义。函数参数和类级变量不需要是。在:bar=Foo(5,5)上,bar是对象吗?(5,5)是实例变量,var=9类级变量?@Riomario,是的,bar是一个对象。实例变量是self.i
和self.j
。是的,var
是一个类级变量。如果self.i和self.j是实例变量,那么a和b是什么?是否需要在init方法中定义所有变量?@Riomario,需要定义所有实例变量(附加到对象的变量)。函数参数和类级变量不需要是。在:bar=Foo(5,5)上,bar是对象吗?(5,5)是实例变量,var=9类级变量?@Riomario,是的,bar是一个对象。实例变量是self.i
和self.j
。是的,var
是一个类级变量。如果self.i和self.j是实例变量,那么a和b是什么?