在该类中创建相同类的对象

时间:2018-08-10 16:33:19

标签: python python-2.7 class object

我想在一个类中有一个类的对象,因为我需要将其传递给方法,类似于下面的示例。我希望下面的示例打印出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)

2 个答案:

答案 0 :(得分:1)

请,您能更详细地说明您要做什么吗?

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

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

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

再次,提供有关您要执行的操作的更多详细信息,可以为您提供帮助。

答案 1 :(得分:1)

虽然不清楚您要问什么,但是以下更改可以满足您的要求。
但是代码使用的是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