Python - 关于工厂功能的问题

时间:2010-10-10 15:30:34

标签: python factory-pattern

我有一系列类,我将注册为更高级抽象类的服务。高级类将具有基于 init args等获得较低级别类的函数。这听起来是疯狂的吗?还有,这叫什么?我把它称为工厂功能/类,但我真的不知道(这使谷歌最佳实践更难)。

1 个答案:

答案 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