「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

人工知能

「Ntropyの共同創設者兼CEO、ナレ・ヴァルダニアンについて - インタビューシリーズ」

「Ntropyの共同創設者兼CEOであるナレ・ヴァルダニアンは、超人的な精度で100ミリ秒以下で金融取引を解析することを可能にす...

人工知能

キャルレールの最高製品責任者、ライアン・ジョンソンへのインタビューシリーズ

ライアンは、初期のスタートアップからフォーチュン100の組織まで、多様なテクノロジーと製品開発のリーダーシップ経験を15年...

人工知能

「ゲイリー・ヒュースティス、パワーハウスフォレンジクスのオーナー兼ディレクター- インタビューシリーズ」

ゲイリー・ヒュースティス氏は、パワーハウスフォレンジックスのオーナー兼ディレクターであり、ライセンスを持つ私立探偵、...

人工知能

「スノーケルAIのCEO兼共同創設者、アレックス・ラットナー - インタビューシリーズ」

アレックス・ラトナーは、スタンフォードAIラボを母体とする会社、Snorkel AIのCEO兼共同創設者ですSnorkel AIは、手作業のAI...

データサイエンス

「Seerの最高データオフィサーであるDr. Serafim Batzoglouによるインタビューシリーズ」

セラフィム・バツォグルはSeerのチーフデータオフィサーですSeerに加わる前は、セラフィムはInsitroのチーフデータオフィサー...

人工知能

「ジャスティン・マクギル、Content at Scaleの創設者兼CEO - インタビューシリーズ」

ジャスティンは2008年以来、起業家、イノベーター、マーケターとして活動しています彼は15年以上にわたりSEOマーケティングを...