我想从__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