私は、Pythonでは、クラス/インスタンス変数にアクセスするたびに、__getattribute__
メソッドを呼び出して結果を取得することを理解しています。しかし、私はobj.__dict__['x']
を直接使用して、私が欲しいものを得ることができます。Pythonの__getattribute__とobj .__ dict __ ['x']の違いは?
私は少し違いが分かりましたか? また、getattr(obj, name)
を使用している場合は、内部で__getattribute__
またはobj.__dict__[name]
を呼び出していますか?
ありがとうございます。
http://stackoverflow.com/questions/3278077/difference-between-getattr-vs-getattribute疑問を解決する必要があります。 –
@AashishPコメントありがとうございます。しかし、この記事では '__getattr__'と' __getattribute__'の違いについて説明しています。 'getattr'は' __getattr__'とほとんど関係がないようですので、 'getattr'は実際に' obj .__ dict____ [name] 'と同じであることを意味していますか? – cizixs
そうです。私はCPythonのソースコードを掘り下げようとしました。ここで私が見つけたのは、平易な言語で、http://stackoverflow.com/questions/24863787/python-the-getattribute-method-and-descriptors –