直接复制下述代码并运行,环境为python 3.5
import sys
class Employee:
@staticmethod
def create(class_type):
current_module = sys.modules[__name__]
class_name = getattr(current_module, class_type)
return class_name()
class Engineer(Employee):
pass
class SalesMan(Employee):
pass
class Manager(Employee):
pass
en = Employee.create('Engineer')
ma = Employee.create('Manager')
print(type(en), type(ma))
参考资料:
本文介绍了一种在Python中利用类名字符串创建类实例的方法。通过定义一个名为Employee的基类,该基类包含了一个静态方法create,此方法接受一个类名作为参数,并通过反射机制创建对应的子类实例。
325

被折叠的 条评论
为什么被折叠?



