私は2つのクラスがあります。メソッド本体から定義クラスを取得する方法は?
a = A()
b = B()
a.foo()
b.foo()
(つまり、これは予想される動作である)、これを生成します:
A
A
class A:
def foo(self):
print(<get the defining class>)
class B(A):
pass
は今、私はこれはというようなコードで<get the defining class>
を交換する必要が
私はself.__class__.__name__
を試しましたが、それはself
であるため、最後の呼び出しでは明らかにB
を生成します。fac t、クラスB
です。
私はメソッド本体(クラスメソッドではない)にいる場合、メソッドが定義されているクラスの名前はどのように取得できますか?
私は混乱しています。 A&Aが間違っていて、A&Bがあなたが期待していないものであれば、実際に何を期待していますか? –
@JonClementsいいえ、A&Aは正しいです。混乱を指摘してくれてありがとう。 – zegkljan
右...「クラスC:def foo(self)#何でも」を実行すると、 'class D(B、C)'はどこに 'foo'が定義されていますか? –