从该类访问Python实例var

2024-09-19 23:34:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从__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?你知道吗


Tags: 实例importselfinitvarsysborgclass
3条回答

当你打电话的时候

print self.nombre

对象还没有被构造(当这个语句被求值时没有Borg的实例),所以没有self或nombre。如果要访问nombre,首先需要构造对象:

pingus  = Borg("varString")

然后访问nombre:

print pingus.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()

在python类中不能有独立的代码。 你可以访问自身名称从另一种方法。你知道吗

  def foo(self):
     print self.nombre

相关问题 更多 >