「Pythonでのプロトコル」

「Pythonのプロトコル」

構造的サブタイプの使用方法

Python 3.8 では、新しい便利な機能であるプロトコルが導入されました。プロトコルは抽象基底クラス(ABC)の代替であり、属性と関数のみを基準にして、2つのクラスが互換性があるかどうかをチェックする構造的サブタイピングを可能にします。この記事では、詳細について説明し、実践的な例を使用してプロトコルの使用方法を示します。

Photo by Chris Liverani on Unsplash

Pythonにおける型付け

まず、Pythonの型付けについて説明しましょう。Pythonは動的型付け言語であり、型は実行時に推論されます。次のコードは問題なく実行されます:

def add(x, y):    return x + yprint(add(2, 3))print(add("str1", "str2"))

最初の呼び出しは整数の加算であるため、結果は5を返します。2番目の呼び出しは文字列の連結であり、”str1str2″を返します。これは、静的型付けのC++などとは異なり、型宣言が必要ではありません:

int add(int x, int y) {    return x + y;}std::string add(std::string x, std::string y) {    return x + y;}int main(){    std::cout<<add(2, 3);    std::cout << add("str1", "str2");    return 0;}

静的型付けは、コンパイル時にエラーをキャッチする可能性があるという利点があります。一方、動的型付けはより迅速なプロトタイピングや実験が可能になります。そのため、Pythonは非常に人気があります。

動的型付けはダック・タイピングとも呼ばれ、言い換えると「もしもそれがアヒルのように歩き、アヒルのように鳴くのであれば、それはアヒルである」ということです。つまり、オブジェクトが同じ属性/関数を提供している場合、同様に扱われ、他の種類を必要とする関数に渡すことができます。

ただし、特に大規模でよりプロフェッショナルなソフトウェア製品では、この信頼性のなさはメリットよりもデメリットが多くなります。そのため、静的型チェックに向けた傾向があり、例えばmypyを使用して型ヒントを提供することがあります。

サブタイピング

興味深い問題の1つは、前述のダック・タイピングの短いパラグラフで示されているように、サブタイピングです。関数のシグネチャがfoo(x: X)である場合、mypyはどのようなクラスがX以外にその関数に渡されることを許可しますか?(注:現在は…)

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

「シフトのCEOであるクリス・ナーゲル – インタビューシリーズ」

クリスはSiftの最高経営責任者です彼は、Ping Identityを含むベンチャー支援および公開SaaS企業のシニアリーダーシップポジシ...

人工知能

「アナコンダのCEO兼共同創業者、ピーターウォングによるインタビューシリーズ」

ピーター・ワンはAnacondaのCEO兼共同創設者ですAnaconda(以前はContinuum Analyticsとして知られる)を設立する前は、ピー...

人工知能

「ジンディのCEO兼共同創設者、セリーナ・リー― インタビューシリーズ」

「Celina Leeは、ZindiのCEO兼共同創設者であり、アフリカのデータサイエンティスト向けの最大の専門ネットワークです Celina...

データサイエンス

「Adam Ross Nelsonによる自信のあるデータサイエンスについて」

データサイエンスの中で新たな分野が現れ、研究内容が理解しにくい場合は、専門家や先駆者と話すのが最善です最近、私たちは...

人工知能

「Ami Hever、UVeyeの共同創設者兼CEO - インタビューシリーズ」

עמיר חבר הוא המנכל והמייסד של UVeye, סטארט-אפ ראיה ממוחשבת בלמידה עמוקה, המציבה את התקן הגלובלי לבדיקת רכבים עם זיהוי...

機械学習

「Prolificの機械学習エンジニア兼AIコンサルタント、ノラ・ペトロヴァ – インタビューシリーズ」

『Nora Petrovaは、Prolificの機械学習エンジニア兼AIコンサルタントですProlificは2014年に設立され、既にGoogle、スタンフ...