【发布时间】:2014-09-30 10:35:24
【问题描述】:
我正在创建一个类,我希望将其作为单独类的 class 成员,以便第二类的所有实例都可以访问第一类。目前我有一些看起来像这样的东西:
class A:
def __init__(self):
print "In Constructor!"
class B:
ClassA = ''
def __init__(self, InstanceA):
self.ClassA = InstanceA
但是,当我尝试使用ClassA 类变量时,我收到抱怨说“str 对象没有属性...”。有没有办法用InstanceA 的参数构造类B,然后以某种方式将其设置为类变量?或任何其他解决方案!
【问题讨论】:
-
虽然有可能,但这听起来确实是个很糟糕的主意。
-
拥有共享的班级成员肯定会有用@wim?
-
是的,这就是类属性的用途,但是每次初始化新实例时共享资源都会发生变化,这听起来像是一个可疑的设计
-
以上只是伪代码。在我的实际程序中,A 类实际上是另一个更大的类的接口,我希望 B 类的所有实例都能够与之交互。如果您知道实现此目的的更好方法,可以告诉我吗?
-
如果你想为类的所有实例设置一次,有一个单独的
@classmethod来设置它,不要通过__init__来设置。
标签: python class class-variables