私はこのコードを持っています:
class X(object):
x = 10
def test_x(self):
return self.x
class Y(X):
def test_y(self):
return self.x
y = Y()
y.test_y() # works fine
しかし、 type を使用して X に基づいて新しいオブジェクト z を作成すると、次のようになります。
z = type('Z', (X,), dict(z=1))
z.x # works fine
z.test_x() # gives a TypeError :
バインドされていないメソッド test_x() は、Z インスタンスを最初の引数として呼び出す必要があります (代わりに何も取得しません)。どうすれば解決できますか。
アップデート
Martijn の助けと理解を得て、これが私が解決した方法です。
z = type('Z', (X,), dict(z=1))()
z.test_x()