より高いレベルの抽象化クラスへのサービスとして登録する一連のクラスがあります。高レベルクラスには、 init argsなどに基づいて低レベルクラスを取得する関数があります。これは凶暴に聞こえますか?また、これは何と呼ばれていますか?私はそれをファクトリー関数/クラスと呼んでいますが、実際にはわかりません(これにより、Googleのベストプラクティスが難しくなります)。
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 に答える