假设我们有一个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
:
>>> 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 globals()[self.name]()
...
>>>
>>> f = F('B')
>>> b = f.create()
>>> b.say_hi()
hi, I am B
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句