0

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

4

1 回答 1

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
于 2010-10-10T15:44:24.010 回答