問題タブ [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 - Python 記述子
記述子ドキュメントから:
記述子は、そのメソッド名によって直接呼び出すことができます。たとえば、
d.__get__(obj)
.
次のクラスでは、これの例は何でしょうか?
たとえば、とはd
何obj
ですか?"d.__get__(obj)"
上記のクラス/インスタンスでどのように呼び出されますか?
python - staticmethod が「staticmethod」クラスにバインドされていないのはなぜですか?
Pythonで記述子がどのように機能するかを理解しようとしています。全体像は把握できましたが、@staticmethod デコレータを理解するのに問題があります。
私が具体的に参照しているコードは、対応する python ドキュメントからのものです: https://docs.python.org/3/howto/descriptor.html
私の質問は次のとおりです。self.f
最後の行でアクセスされたときに、記述子自体として認識されずf
(すべての関数が非データ記述子であるため)、StaticMethod オブジェクトである自己にバインドされますか?
python - クラス名を使用して Python で記述子属性の値を設定する
Python で記述子がどのように機能するかを理解しようとしています。以下のコードスニペットがあります。
クラス名を使用して記述子属性name
にアクセスすると、つまりPerson.name
get メソッドが呼び出されます。ただし、同じ方法で値を設定しようとすると、Person.name = 'Jack'
set が呼び出されません。ここで、 set が呼び出されることを期待していました。
この振る舞いが理解できません。
Python 3.8 を使用しています。
python - オブジェクトの "__dict__" を __dict__ に格納できないのはなぜですか?
この回答では、インスタンスの"__dict__"
属性をその .xml に直接保存できないことが言及されています__dict__
。なんで?
さらに:instance.__dict__
が に変換される場合、これは もに変換されるtype(instance).__dict__["__dict__"].__get__(instance)
ことを意味しますか?instance.x
type(instance).__dict__["__dict__"].__get__(instance)["x"]
ところで、私は公式の記述子ドキュメントを読みましたが、これはまだ私を混乱させます.
ありがとう!