が、私はこれに似たクラスを持つ属性モデル化するために割り当てモデルのメソッドの戻り値が
:y.name
インスタンスy
されて、私は次の取得します(プロパティオブジェクト0x0000000004FDCBD8)
私はここで間違っていますか?
上記の@property
を使ってみましたが、動作しませんでした。
私はy.name
にアクセスすると "Humpty Dumpty"を取得したいと思います。したがって、このメソッドはその値を属性に割り当てます。
が、私はこれに似たクラスを持つ属性モデル化するために割り当てモデルのメソッドの戻り値が
:y.name
インスタンスy
されて、私は次の取得します(プロパティオブジェクト0x0000000004FDCBD8)
私はここで間違っていますか?
上記の@property
を使ってみましたが、動作しませんでした。
私はy.name
にアクセスすると "Humpty Dumpty"を取得したいと思います。したがって、このメソッドはその値を属性に割り当てます。
:あなたはこのような何かをする必要が
name = property(hello)
これが設定されますあなたの関数のプロパティ内のfget
hello
。
y = X()
y.name
'Humpty Dumpty'
非常に良いtutorial on descriptorsがPython Official docsにあります。
これは無効な構文です。あなただけの、属性アクセスに呼び出される関数を取得するプロパティとして名を定義し、それにあなたの関数foo
を提供したい場合は
class X:
def __init__(self):
self.name = self.hello()
def hello(self):
return "Humpty Dumpty"
test = X()
print(test.name) # prints "Humpty Dumpty"
これはdjangoにありますか?私はPythonタグを追加しました。なぜなら、Python固有のものかもしれないからです。 – Onilol
いいえ、これは一般的なPythonコードです。 – which1ispink
あなたは、その割り当てが欲しいと言っていません。また、私は印刷された "プロパティオブジェクト"の値を再現することはできません。 –
@NedBatchelder私の悪いです。 – Onilol