pythonに関数のオーバーロードはありますか

pythonで関数のオーバーロードはありません

pythonが関数のオーバーロードを提供しない理由を検討するために、最初に関数のオーバーロードを提供する必要がある理由を調査する必要があります。

関数のオーバーロードは、主に2つの問題を解決するためのものです。

可変パラメータタイプ。

可変パラメータの数。

また、基本的な設計原理は、2つの関数の機能がパラメータの種類と数が異なることを除いてまったく同じである場合にのみ、関数のオーバーロードが使用されるというものです.2つの関数の関数が実際に異なる場合、2つの関数の関数は異なります。オーバーロードを使用する必要がありますが、別の名前の関数を使用する必要があります。

したがって、ケース1の場合、関数は同じ関数を持ちますが、パラメータータイプが異なりますが、pythonはそれをどのように処理しますか?

答えは、pythonは任意のタイプのパラメーターを受け入れることができるため、まったく処理する必要がないということです。関数の関数が同じである場合、異なるパラメータータイプはpythonの同じコードである可能性が高く、2つの異なる関数を作成する必要はありません。

したがって、ケース2の場合、関数は同じ関数を持ちますが、パラメーターの数が異なります。pythonはそれをどのように処理しますか?

答えはデフォルトのパラメータです。この問題は、不足しているパラメーターをデフォルトのパラメーターとして設定することで解決できます。機能は同じであると想定しているため、不足しているパラメーターが最終的に必要になります。ケース1と2の両方に解決策があることを考えると、pythonは当然関数のオーバーロードを必要としません。

ナレッジポイントの補足:

パラメータアドレスを持つ関数connectがあるとします。このパラメータは、文字列またはタプルの場合があります。例えば:

connect('123.45.32.18:8080')connect(('123.45.32.18',8080))

コードを記述するこれらの2つの方法と互換性を持たせたいので、次のようにコードを書くことができます。

def connect(address):ifisinstance(address, str):
ip, port = address.split(':')
elif isinstance(address, tuple):
ip, port = address
else:print('アドレス形式が正しくありません')

これまでのところ、Pythonで関数のオーバーロードはありますかに関するこの記事はここで紹介されています。関連するpython関数のオーバーロードの詳細については、ZaLou.Cnを検索してください。

Recommended Posts

pythonに関数のオーバーロードはありますか
pythonにヘルパー関数はありますか
python言語のアルゴリズムはありますか
Pythonの匿名関数とは何ですか
Pythonの結合関数
pythonでのadbの機能は何ですか
pythonのイントロスペクションとは何ですか
pythonのオブジェクト指向とは何ですか
Pythonが関数のオーバーロードをサポートしないのはなぜですか?
pythonのリスト内包表記とは何ですか
Pythonにはいくつかのキーワードがあります
Pythonのすべてがオブジェクトです
pythonでid関数を実行する方法
pythonのid関数は何ですか
Pythonのシーケンステーブルとは
pythonの数値は可変型ですか
pythonの関数本体は何ですか
Pythonは主にどの方向に使用されます
Python 3.9が登場!
pythonの関数
Python enumerate()関数
Python関数バッファー
pythonでround関数を使用する方法
Pythonでzip関数を使用する方法
pythonでformat関数を使用する方法
なぜpythonが人気なのか
Pythonは短いクロール音楽です
03.Pythonエントリの演算子
Pythonはゆっくりと衰退しています
Pythonカスタム関数の基本
12.Python3でのネットワークプログラミング
pythonでステートメントを印刷する
Python組み込み関数-compile()
Python関数の基礎学習
Pythonデータ分析-関数の適用
Python3組み込み関数table.md
Pythonでの同時リクエスト
Ubuntuにpythonをインストールする
Pythonでのコンテキスト管理
pythonの算術演算子
pythonでguiを書く
Pythonプリントプリントタイマー機能
PythonでのMongoDBの使用
PythonのStr文字列
Pythonでの計算ジオメトリ
Pythonでの同時リクエスト(パート2)
Pythonの上位関数の使用法の概要!
Pythonのタプルの添え字
pythonは解釈された言語ですか?
Pythonでの継承について話す
pythonは解釈された言語ですか
Python3.9の注目すべき更新ポイント
Pythonは短世界の流行マップです
Pythonトルネードアップロードファイル機能
Pythonマジック関数eval()学習
PythonがFTP機能を実装する方法
Pythonアプリケーションを3分でコンテナ化
Pythonは短い_SVMテストです
pythonコードは大文字と小文字を区別しますか
Python変数スコープとは
Pythonのジェネレーターとイテレーター