在类中创建同一类的对象

2024-10-02 14:30:27 发布

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

我想在一个类中有一个类的对象,因为我需要将它传递给一个方法,类似于下面的示例。我想下面的例子打印出1,或fooObj.fooNum文件,但我一直得到NameError: name 'foo' is not defined。你知道吗

class bar:
    def fooDef(self, fooObj):
        print fooObj.fooNum

class foo:
    fooNum = 1
    b = bar()
    f = foo()
    b.fooDef(f)

Tags: 文件对象方法name示例fooisnot
2条回答

拜托,你能说得更具体些吗?你知道吗

您看到的错误是正常的,因为紧靠class foo下面的代码将在foo的定义期间执行,因此类尚未定义。你知道吗

如果我理解的很好,您希望定义类foo的某个方法foobar,它将使用foo实例。正确的程序是

class foo:
    def foobar(self,):
        f = foo()
        ...

再说一次,有了更多关于你想做什么的细节,你会更容易得到帮助。你知道吗

虽然不清楚您的要求,但以下更改会满足您的要求。
但是代码使用的是foo()的实例,而不是类:

class bar:
    def fooDef(self, fooObj):
        print fooObj.fooNum

class foo:
    def __init__(self):
        self.fooNum = 1
        b = bar()
        f = self
        b.fooDef(f)

f = foo()

印刷品:

1

相关问题 更多 >