この回答に基づいて、Pythonでどのよう__new__
に動作することになっているのか、__init__
新しいクラスとオブジェクトを動的に定義して作成するために、このコードを書きました。
class A(object):
def __new__(cls):
class C(cls, B):
pass
self = C()
return self
def foo(self):
print 'foo'
class B(object):
def bar(self):
print 'bar'
a = A()
a.foo()
a.bar()
基本的に、__new__
A の は A と B を継承する動的に作成された C を返すため、属性が必要ですbar
。
なぜ属性がC
ないのですか?bar