我有一系列类,我将注册为更高级抽象类的服务。高级类将具有基于 init args等获得较低级别类的函数。这听起来是疯狂的吗?还有,这叫什么?我把它称为工厂功能/类,但我真的不知道(这使谷歌最佳实践更难)。
答案 0 :(得分:2)
它被称为“元类编程”。在Python的最新版本中,它是通过定义__new__()
静态方法并返回适当类型的对象来实现的。
class C(object):
def __new__(cls, val):
if val == 5:
return 'five'
else:
return super(C, cls).__new__(cls)
c1 = C(3)
print c1
c2 = C(5)
print c2