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