2个函数能否访问Python中的对象变量

2个函数能否访问Python中的对象变量,python,Python,我知道在Python中,类可以有一个类变量(在所有对象之间共享),也可以有一个唯一的对象变量(在对象之间可以唯一地赋值) 但是,当我试图从另一个函数访问对象的变量时,为什么会出现“objecthasnotattribute”nObjVar错误 class TestClass: nClassVar1 = 0 #Class Var shared across all objects def __init__(self, defaultInitVal

我知道在Python中,类可以有一个类变量(在所有对象之间共享),也可以有一个唯一的对象变量(在对象之间可以唯一地赋值)

但是,当我试图从另一个函数访问对象的变量时,为什么会出现“objecthasnotattribute”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 )

原因是,如果您希望它是需要键入的对象的成员,则在init中将其定义为局部变量

self.nObjVar


这将把它设置为一个成员。原因是,如果您希望它是需要键入的对象的成员,那么在init中将它定义为一个局部变量

self.nObjVar


这将把它设置为成员

要使变量对类中的所有方法都可用,请将其保存在
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 )

要使变量对类中的所有方法都可用,请将其保存在
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 )

尝试
self.nObjVar
引用实例的变量。

尝试
self.nObjVar
引用实例的变量。

您需要访问
nObjVar
as
self.nObjVar
。您需要访问
nObjVar
as
self.nObjVar