从该类访问Python实例var



我想从__init__之外的类访问实例var,但我被卡住了!

 import sys
class Borg(object):
    __shared_state = {}
    def __init__(self, nombre):
        self.__dict__ = self.__shared_state
        self.nombre = nombre 
        print 'my instance vr::', self.nombre
        # panga = 'pangas'  
    panga = 'pangas'

    print 'te copio con  ' 

    print panga
    #print self.nombre

pingus = Borg('varString')

print pingus.nombre

如果我取消对print self.nombre的注释,我会得到"self.nombre不被识别"?

如何访问此var?

这可能效果更好。您应该将该代码封装在一个方法中,例如:

import sys
class Borg(object):
    __shared_state = {}
    def __init__(self, nombre):
        self.__dict__ = self.__shared_state
        self.nombre = nombre 
    def instance_method_1(self):
        print 'my instance vr::', self.nombre
        panga = 'pangas'
        print 'te copio con  ' 
        print panga
        print self.nombre

pingus = Borg('varString')

print pingus.nombre
pingus.instance_method_1()

在python类中不能有独立的代码。您可以从其他方法访问self.nombre。

  def foo(self):
     print self.nombre

当您调用时

print self.nombre

该对象尚未构建(在评估该语句时,没有博格的实例),因此既没有自我也没有名字。如果你想访问nombre,你首先需要构建对象:

pingus  = Borg("varString")

然后访问nombre:

print pingus.nombre

相关内容

  • 没有找到相关文章

最新更新