class Foo(object):
def static_var():
def decorator(func):
setattr(func, "different", "think different")
return func
return decorator
@static_var()
def think(self):
pass
上記のコードを見ると、print Foo()。think.differentと入力すると、出力は「think different」になります。しかし、問題は、私はこれを得るために魔法を使うべきです、どうすればいいですか?ありがとう。クラス内のデコレータを定義pythonマジックメソッドを使用してクラスのメソッドに属性を設定する方法
__getattribute__()
内部にすべてをされて使用してメソッドを呼び出す場合は、無限ループにつながる可能性がある。この__getattribute__()
を使用するように注意してくださいを必要とするものだと思います。したがって、クラスメソッドを指すように属性を設定できます。 – dhishan