从该类访问Python实例变量
我想从从该类访问Python实例变量,python,instance-variables,Python,Instance Variables,我想从\uuuu init\uuuu之外的类访问实例变量,但我被卡住了 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
\uuuu init\uuuu
之外的类访问实例变量,但我被卡住了
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
无法识别”
如何访问此变量?python类中不能有独立的代码。 您可以从其他方法访问self.nombre
def foo(self):
print self.nombre
python类中不能有独立的代码。 您可以从其他方法访问self.nombre
def foo(self):
print self.nombre
这可能会更好。您应该将该代码封装在一个方法中,如:
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()
这可能会更好。您应该将该代码封装在一个方法中,如:
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()
当你打电话的时候
print self.nombre
对象尚未构造(当该语句被计算时,没有Borg实例),因此没有self或nombre。如果要访问nombre,首先需要构造对象:
pingus = Borg("varString")
然后访问nombre:
print pingus.nombre
当你打电话的时候
print self.nombre
对象尚未构造(当该语句被计算时,没有Borg实例),因此没有self或nombre。如果要访问nombre,首先需要构造对象:
pingus = Borg("varString")
然后访问nombre:
print pingus.nombre
在Python类中可以有独立的代码,但它将在定义类时执行,而不是在实例化类时执行。在这一点上,
self
没有定义。好吧,你可以在Python类中有独立的代码,但它将在定义类时执行,而不是在实例化类时执行。此时,self
未定义。您的缩进似乎有问题,因为您正在类定义中执行print语句。(而且,import sys
的缩进也是错误的。)缩进看起来很混乱,因为您正在类定义中执行print语句。(并且,import sys
的缩进也是错误的。)