での静的および非静的することができ、私はこのクラスを考えてみましょう:関数はPythonの2
class Test(object):
def __init__(self, a):
self.a = a
def test(self, b):
if isinstance(self, Test):
return self.a + b
else:
return self + b
これは、理想的には私の世界でこれを行うだろう:
>>> Test.test(1,2)
3
>>> Test(1).test(2)
3
は今、このはしていません
TypeError: unbound method test() must be called with Test instance as first argument (got int instance instead)
python3では、これはうまく動作し、これはpytのデコレータで可能ですhon2しかし、私のpython fooはそれを動作させるのに十分なほど強力ではありません。
プロットツイスト:静的に呼び出されていないときに何かが必要な場合はどうなりますか?
おっとはちょうど '追加@:、あなた自身の記述子タイプは賢明かもしれクラスを書きますstaticmethod' decorator works ... – albertjan