我在Python中理解一个类可以有一个类变量(在所有对象之间共享),还有一个唯一的对象变量(可以从对象到对象唯一地分配)。
但是,为什么我得到一个'对象没有属性' nObjVar'错误,当我尝试从另一个函数访问该对象的变量时?
class TestClass:
nClassVar1 = 0 #Class Var shared across all objects
def __init__(self, defaultInitVal = 0):
nObjVar = defaultInitVal #Object Var Only
def MyFuncMult(self):
result = nObjVar * 10;
return ( result )
答案 0 :(得分:2)
原因是因为你要将它定义为init中的局部变量,如果你想让它成为你需要输入的对象的一个成员
self.nObjVar
这会将其设置为成员
答案 1 :(得分:2)
要使变量可用于类中的所有方法,请将其保存在self
命名空间中。
class TestClass:
nClassVar1 = 0 #Class Var shared across all objects
def __init__(self, defaultInitVal = 0):
self.nObjVar = defaultInitVal #Object Var Only
def MyFuncMult(self):
result = self.nObjVar * 10;
return ( result )
答案 2 :(得分:1)
尝试self.nObjVar
引用实例的变量。