クラス名を介してクラスの属性にアクセスすると、Pythonはどのメソッドを呼び出しますか?

フィッツ:

インスタンス介してFooの属性にアクセスすると__getattribute__()メソッドが呼び出されることはわかっています、クラスを介してこの属性に直接アクセスするとどうなりますか?関数が呼び出された場合、ブレークポイントを設定して、プロジェクトのクラスからこのプロパティにアクセスしたときにブレークポイントがトリガーされるようにします。

私は魔法の方法__getattribute__()ブレークポイントを設定しようとしましたが、何も起こりませんでした。

class Foo:
    age = 18


print(Foo.age)  # I am curious what method is called
お客様 :

Pythonのすべてがオブジェクトであり、すべてがtypeオブジェクトの動作を決定するを持っています。これは、クラスオブジェクトにも当てはまります。あなたはチェックすることができますtype(Foo)

>>> type(Foo)
<class 'type'>

カスタムを提供することにより、クラスのタイプをカスタマイズできますmetaclassこのメタクラスは、クラスオブジェクトの属性アクセスを担当します。

class MyMeta(type):
    def __getattribute__(self, name):
        print(f'__getattribute__({self!r}, {name!r})')
        return super().__getattribute__(name)


class Foo(metaclass=MyMeta):
    age = 18


print(Foo.age)

そして出力は:

__getattribute__(<class '__main__.Foo'>, 'age')
18

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

クラスの名前とクラスメソッドを介してクラスの属性にアクセスすることの違いは何ですか?

呼び出すクラスの名前に基づいて別のメソッドを呼び出しますJavaメソッドを実装するには?

Python:クラスを使用して、クラス属性がメソッド引数であるかのようにメソッド呼び出しを処理する

クラス内にあるクラスのメソッドを呼び出そうとしています

非静的クラスはどのようにして別の非静的クラスのメソッドを呼び出すことができますか?

呼び出し元のクラスとメソッド名を取得する

クラスAはクラスBインスタンスをインスタンス化します。ClassBのインスタンスはどのようにしてクラスAのメソッドを呼び出すことができますか?

Javaリフレクションを使用して匿名クラスのメソッドを呼び出すときに例外にアクセスする

あるクラスのメソッドにアクセスし、別のクラスのメソッドをフラッター(dart)で呼び出す方法

別のクラスを介してメソッドを呼び出す

Javaで別のクラスのメインメソッドを呼び出して、呼び出し元のコードに戻ることは可能ですか?

クラスの参照を使用してメソッドを呼び出すことはできますか

Collectionクラスのsort()メソッドはどのようにComparableのcompareTo()を呼び出しますか?

Typescriptで、イベントハンドラーとして呼び出される同じクラスの別のメソッドからクラスメソッドを呼び出すにはどうすればよいですか?

jMockitとTestNGを使用して、最終クラスの静的メソッドの呼び出しを確認するにはどうすればよいですか?

クラスとメソッドの呼び出しをメソッドに渡してRubyで使用する

別のメソッドでThreadPoolExecutorを呼び出すときに、クラスのメソッドにアクセスします

初期化メソッドからクラスメソッドをどのように呼び出しますか?

基本クラスの抽象メソッドを介して呼び出す

文字列メソッド名を介してクラス内でPython静的メソッドを呼び出す方法

self.variable.function()は、Pythonで意味するか、クラスの自己変数を介してメソッドにアクセスします

クラスを null に設定しても、後でクラスからメソッドを呼び出すことができるのはなぜですか?

呼び出しメソッドのクラス名を取得します

JNI Cメソッドを呼び出すクラスの名前を知ることはできますか?

クラスは別のクラスをインスタンス化した後、どのようにメソッドを呼び出しますか?

ActiveRecord :: Relationオブジェクトはどのようにしてクラスメソッドを呼び出すことができますか

PHPは、クラス名でクラスの静的メソッドを呼び出します

別のメソッドを呼び出した後にクラスメソッドを再割り当てするにはどうすればよいですか?

Pythonスーパークラスからメソッドを実行する場合、それを呼び出した子クラスの名前をどのように知ることができますか?

TOP 一覧

  1. 1

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    Ansibleで複数行のシェルスクリプトを実行する方法

  4. 4

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  5. 5

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  6. 6

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  7. 7

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  8. 8

    Chromeウェブアプリのウェブビューの高さの問題

  9. 9

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  10. 10

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  11. 11

    Reactでclsxを使用する方法

  12. 12

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  13. 13

    MLでのデータ前処理の背後にある直感

  14. 14

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  15. 15

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  16. 16

    mutate_allとifelseを組み合わせるにはどうすればよいですか

  17. 17

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

  18. 18

    テキストフィールドの値に基づいて UIslider を移動します

  19. 19

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  20. 20

    PowerShellの分割ファイルへのヘッダーの追加

  21. 21

    ソートされた検索、ターゲット値未満の数をカウント

ホットタグ

アーカイブ