「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

人工知能

「Zenの共同創設者兼CTO、イオン・アレクサンドル・セカラ氏によるインタビューシリーズ」

創業者兼CTOであるIon-Alexandru Secaraは、Zen(PostureHealth Inc.)の開発を牽引しており、画期的な姿勢矯正ソフトウェア...

人工知能

『ジュリエット・パウエル&アート・クライナー、The AI Dilemma – インタビューシリーズの著者』

『AIのジレンマ』は、ジュリエット・パウエルとアート・クライナーによって書かれましたジュリエット・パウエルは、著者であ...

機械学習

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

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

人工知能

ファイデムのチーフ・プロダクト・オフィサー、アルパー・テキン-インタビューシリーズ

アルパー・テキンは、FindemというAI人材の獲得と管理プラットフォームの最高製品責任者(CPO)ですFindemのTalent Data Clou...

人工知能

Aaron Lee、Smith.aiの共同設立者兼CEO - インタビューシリーズ

アーロン・リーさんは、Smith.aiの共同創業者兼CEOであり、AIと人間の知性を組み合わせて、24時間365日の顧客エンゲージメン...

人工知能

スコット・スティーブンソン、スペルブックの共同創設者兼CEO- インタビューシリーズ

スコット・スティーブンソンは、Spellbookの共同創設者兼CEOであり、OpenAIのGPT-4および他の大規模な言語モデル(LLM)に基...