从该类访问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
的缩进也是错误的。)