我想从__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?
答案 0 :(得分:4)
这可能会更好。您应该将该代码封装在一个方法中,例如:
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()
答案 1 :(得分:1)
你不能在python类中拥有自由站立的代码。 你可以从另一种方法访问self.nombre。
def foo(self):
print self.nombre
答案 2 :(得分:0)
当你打电话时
print self.nombre
该对象尚未构建(在评估该语句时没有Borg的实例),因此没有自我也没有nombre。如果你想访问nombre,首先需要构建对象:
pingus = Borg("varString")
然后访问nombre:
print pingus.nombre