問題タブ [python-descriptors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - なぜ object.__setattr__.__get__(self, Attribute) が attrs/_make.py の Attribute の __init__ に使用されるのですか?
私は作業を楽しんでattr
おり、ソース コードの一部を読むことにしました。私の目を引いたのは、次の部分でした(source):
ここで_obj_setattr
は として定義されobject.__setattr__
ます。
なぜこれが行われるのか、私は興味があります。私はこのスタックオーバーフローの応答を読み、非常に便利だと思いましたが、__get__
. 私は少し読んだことがありますdescriptors
が、それらについて頭を完全に包んでいません. それで、私の質問は、なぜ では_obj_setattr.__get__(self, A)("name", name)
なく を使用するのobject.__setattr__(self, "name", name)
かということです。
python - Python で記述子またはプロパティにメソッドを追加する方法
簡単に拡張できるシミュレーション クラスを作成しようとしています。このために、プロパティに似たものを使用したいと思いますが、それはupdate
さまざまなユース ケースに対して異なる方法で実装できるメソッドも提供します。
デフォルトのシミュレーションは、次のように使用できます。
シミュレーションをユーザー定義の方法で拡張できるような方法で記述したいと思います。たとえば、別の方法で更新される別の数量を追加します。
それはどういうわけか可能ですか、それとも同様の動作を実現する別の方法はありますか? 私はこの質問を見たことがありますが、それは役立つかもしれませんが、答えは非常に洗練されていないようです - 私の場合、良いオブジェクト指向のアプローチはありますか?
python - Pythonで属性エラーを解決するには?
私はPythonで記述子を学んでいます。コードを試していますが、以下の属性エラーが発生します。
AttributeError: 'celciusDescriptor' オブジェクトに属性 '_celciusDescriptor__fahrenheit' がありません
華氏で温度を取得することにより、(華氏、摂氏) である (32,0) として出力を取得しようとしています。
'''
'''
python - Python 3.6+で記述子を実装する正しい方法は何ですか?
YouTube のRaymond Hettingersメンタル ゲームで:
Daw-Ran Liou はPython 3.6+ での記述子の記述 で次のように述べています。
[...] 組み込み関数 getattr および setattr を使用する代わりに、dictオブジェクトに直接到達する必要があります。これは、組み込み関数が記述子プロトコルによって傍受され、RecursionError が発生するためです。
しかし、YouTube のMatthew Egans Describing Descriptors は次のように述べています。
記述子を実装する正しい方法は何ですか?