可能的重复: 有没有办法即时创建子类? 动态创建类 - Python
我想创建一个子类,其中唯一的区别是一些类变量,但我希望其他一切都保持不变。我需要动态地执行此操作,因为我只知道运行时的类变量值。
到目前为止,这是一些示例代码。我希望 FooBase.foo_var 为“默认”,但 FooBar.foo_var 为“bar”。到目前为止,没有任何尝试成功。
class FooBase(object):
foo_var = "default"
def __init__(self, name="anon"):
self.name = name
def speak(self):
print self.name, "reporting for duty"
print "my foovar is '" + FooBase.foo_var + "'"
if __name__ == "__main__":
#FooBase.foo_var = "foo"
f = FooBase()
f.speak()
foobarname = "bar"
#FooBar = type("FooBar", (FooBase,), {'foo_var': "bar"})
class FooBar(FooBase): pass
FooBar.foo_var = "bar"
fb = FooBar()
fb.speak()
非常感谢
编辑所以我显然对这一行有问题:
print "my foovar is '" + FooBase.foo_var + "'"
接受的答案self.foo_var
在代码中。这就是我应该做的。我现在觉得很可笑。