17

プロパティがディスクリプタであることは承知していますが、ディスクリプタ クラスを使用する方がより有利である、pythonic である、または@propertyメソッド関数で使用するよりも利点がある場合の具体的な例はありますか?

4

3 に答える 3

9

カプセル化と再利用性の向上: ディスクリプタ クラスは、インスタンス化時にカスタム属性を設定できます。記述子の所有者でデータが設定または上書きされることを心配する代わりに、この方法でデータを制限しておくと便利な場合があります。

于 2011-04-30T15:29:37.363 に答える
4

EuroPython 2012 のすばらしいビデオ「Discovering Descriptors」から引用させてください。

記述子とプロパティのどちらを選択するか:

  • プロパティは、クラスについて知っている場合に最適に機能します
  • 記述子はより一般的であり、多くの場合、どのクラスにも適用できます
  • クラスとインスタンスで動作が異なる場合は記述子を使用する
  • プロパティは構文糖衣です

また、記述子で使用できることに注意してください__slots__

于 2013-03-17T20:48:37.380 に答える
-1

@property では、専用のセッター メソッドとゲッター メソッドを同時に定義することはできません。getter メソッドが「十分」である場合は、@property を使用します。それ以外の場合は、property() が必要です。

于 2011-04-30T15:21:26.250 に答える