私は@property
別のデコレータ
def android(**params):
def deco(f):
def wrap(*args, **kwargs):
if is_android:
return params
return f()
return wrap
return deco
def ios(**params):
def deco(f):
def wrap(*args, **kwargs):
if not is_android:
return params
return f()
return wrap
return deco
と定義されたクラスでは動作し、これらのデコレータを持っていると@property組み合わせ:私は、私が使用するたびに、再び繰り返し、再び@property
する必要が
class Foo:
@property
@android(foo=1)
@ios(foo=2)
def foo(self):
pass
f = Foo()
print(f.foo)
。 @android
と@ios
に@property
を結合する方法はありますか?私はちょうど意味@property
なし@android
と@ios
を使用する必要があるが、私はあなたがproperty
オブジェクトを返すためにデコレータを変更することができますf.foo
探しているものである
希望は、あなたは必ずこれらの作品はありますか?インデントがオフに見え、内部関数を返さない... TypeError: 'NoneType'オブジェクトが私のコンピュータ上で呼び出し可能ではない 'をスローする。 – MSeifert
私は少しコードを編集します。私のコンピュータでは、コードが機能しました。 –
うまくいけば、正確に何が返ってくるのですか? – MSeifert