方法更改python 3中的类变量
我试图用一个方法更改类变量:方法更改python 3中的类变量,python,python-3.x,oop,Python,Python 3.x,Oop,我试图用一个方法更改类变量: class Test(): someVar = 0 def __init__(self, val1): self.val1 = val1 def changeVar(self): Test.someVar = self.val1**2 val = 2 var1 = Test(val) print(var1.someVar) 但是,我得到“0”作为输出。不知何故,我在推理上有一个错误。将其称为Test
class Test():
someVar = 0
def __init__(self, val1):
self.val1 = val1
def changeVar(self):
Test.someVar = self.val1**2
val = 2
var1 = Test(val)
print(var1.someVar)
但是,我得到“0”作为输出。不知何故,我在推理上有一个错误。将其称为
Test.somevar
def changeVar(self):
Test.someVar = self.val1**2
或者,您可以将其称为self.\uuuu class\uuuuu.x
,或者简称为self.somevar
(当您没有任何其他同名对象变量时)
或
你缺少了一个
self.
self.someVar=self.val1**2@Bear Brown,我仍然得到“0”@ingenium补充了一个问题:如何初始化一个实例一个从未调用过的打印值changeVar
…Test.
vs.self.
vs.self.
实际上取决于您想要更改的属性的意图。这并不都是平等的。当然。。。但我回答的是这个问题的范围
class Test:
someVar = 0
def __init__(self, val1):
self.someVar = val1 * 2
val = 2
var1 = Test(val)
print(var1.someVar)
class Test:
someVar = 0
def __init__(self, val1):
self.someVar = val1
self.changeVar()
def changeVar(self):
self.someVar = self.someVar * 2
val = 2
var1 = Test(val)
print(var1.someVar)