【发布时间】:2014-01-10 04:26:39
【问题描述】:
假设我们有一个 python 文件:
class A(object):
def say_hi(self):
print('hi, I am A')
class B(object):
def say_hi(self):
print('hi, I am B')
class F(object):
def __init__(self, name):
self.name = name
def create(self):
return ## ???
if __name__ == '__main__':
f = F('B')
b = f.create()
b.say_hi()
我想用它的名字创建一个类的实例。 F.create() 中的代码应该是什么?
【问题讨论】:
-
globals()[self.name]()? -
@thefourtheye 好吧,如果我通过“A”,我想要一个
A()如果是“B”,那么B()。 -
@DSM '因为我需要根据给出类名的配置文件创建实例。
-
@mitnk:啊,对不起。我误读了这个问题。我以为您正在创建实例并将它们绑定到给定名称,但实际上您是在 访问 对象。这是完全明智的。