Pythonのsuper()の機能と原理を詳しく解説
Python のオブジェクト メソッドの定義は非常に奇妙です。最初のパラメータは通常 self という名前であり、これはオブジェクト自体を渡すために使用され、システムを呼び出すときに明示的に渡す必要はありません。自動的に通過します。
今日紹介する主役は super() で、Super() はクラスの継承でよく使用され、親クラスのメソッドを複数回呼び出す場合に実行されるのは 1 回だけです。実行を最適化します。以下で詳しく見てみましょう。
例を挙げます:
class Foo: def bar(self, message): print(message)
>>> Foo().bar("Hello, Python.") Hello, Python.
継承関係がある場合、サブクラスで親クラスのメソッドを呼び出す必要がある場合があります。この場合、最も簡単な方法は次のとおりです。オブジェクト呼び出しを変換します。クラスに呼び出す場合、この時点で self パラメータを明示的に渡す必要があることに注意してください。たとえば、次のようになります。これは、たとえば、親クラス名が変更されると、子クラスで多くの変更が行われることになります。また、Python は多重継承が可能な言語であるため、上記のメソッドを複数回記述する必要があります。多重継承があるので面倒です。これらの問題を解決するために、Python は super() メカニズムを導入しました。コード例は次のとおりです。 bar(self, message) メソッドの結果は一貫しています。実際、2 つのメソッドの内部処理メカニズムは大きく異なります。例を直接挙げてみましょう。 :
コード 1:
class FooParent: def bar(self, message): print(message) class FooChild(FooParent): def bar(self, message): FooParent.bar(self, message)
B から離れる
C を入力
Enter A
Leave A
Leave C
Leave A
Leave D
Leave E
実行順序はわかりやすい ということだけ。パブリックの親クラス A は複数回実行されます。コード 2:
>>> FooChild().bar("Hello, Python.") Hello, Python.
結果:
E を入力
B を入力
Aを入力
Aのまま
Dのまま
Leave C
Leave B

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。
