親メソッド(私が装飾しているクラスの親の同じ名前のメソッド)を検査するメソッドのデコレータを作成しています。デコレータから装飾されたメソッドを所有するクラスへのアクセス
(PEP 318の第4の例から)例:
def returns(rtype):
def check_returns(f):
def new_f(*args, **kwds):
result = f(*args, **kwds)
assert isinstance(result, rtype), \
"return value %r does not match %s" % (result,rtype)
return result
new_f.func_name = f.func_name
# here I want to reach the class owning the decorated method f,
# it should give me the class A
return new_f
return check_returns
class A(object):
@returns(int)
def compute(self, value):
return value * 3
だから私は、私が欲しいここ#の代わりに入力するコードを探しています...
感謝。ここ
私の問題は私が言ったよりもはっきりとしていたので、私はあなたのコードを直接使用しませんでした。しかし、* name *が*型*構造体で一般的に使われるので、* dct *をトラバースするときに* name *を使うのはちょっと奇妙です。ありがとう、私はそれが私をたくさん助けたので、とにかくあなたの答えを受け入れることは大丈夫だと思う。 – Gra
ああ、それは修正された間違いです。 –