Can 2函数可以在Python中访问对象变量

时间:2014-07-28 20:37:07

标签: python

我在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 )

3 个答案:

答案 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引用实例的变量。