9

次のコードがあります

global_variable = 1

@property
def method():
    # Some magic, for example 
    # incrementing global variable
    global global_variable
    global_variable += 1
    return global_variable

print method

このコードは戻ります

<property object at 0x28dedb8>

しかし、私は2を期待しています.Pythonでクラス外でプロパティデコレータを使用することは可能ですか?

4

2 に答える 2

2

次のコードを確認してください。

@property
def f():
    return 1

print f

class a(object):
    @property
    def f(self):
        return 2

print a.f
b = a()
print b.f

出力:

<property object at 0x7f892bfb11b0>
<property object at 0x7f892bfb1208>
2

@property は、インスタンス化されたクラス オブジェクトに対してのみ適切に機能します。

于 2013-06-09T08:47:39.797 に答える