【发布时间】:2018-08-10 16:33:18
【问题描述】:
我想在一个类中拥有一个类的对象,因为我需要将它传递给一个方法,类似于下面的示例。我希望下面的示例打印出 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)
【问题讨论】:
-
你为什么要把代码放在
foo类定义中? -
如果您从
foo.__init__()引用foo,它应该可以工作,但不能作为类变量。我想。 -
这似乎是无效的类设计:
foo中有类级代码,它试图创建自己的类的对象(没有初始化),将对象传递给bar的实例方法,然后通过对象访问foo类属性。 -
@user2357112 实际上,这是一段更大的代码,我必须在其中传递
self或我所在的类的实例化。 -
@AlastairMcCormack 你能澄清一下吗?我不太明白你的意思,这是否意味着我必须在 foo 类中创建一个
def __init__(self),然后才能声明一个对象?
标签: python python-2.7 class object