ホームページ >バックエンド開発 >Python チュートリアル >Pythonのオブジェクト型判定と関数のオーバーロード
1. オブジェクトの型を決定します
オブジェクトの型は type 関数を通じて知ることができます:
x = 'Hello' s = type(x) print s x = 'Hello' s = type(x) print s
2. 関数を作成するとき、よく遭遇します。異なるパラメータのタイプや異なる数のパラメータの場合に対処する必要があります。
C++では、通常、同じ名前でパラメータが異なる複数の関数を定義してオーバーロードを実現します
しかし、Pythonでのオーバーロードは、パラメータの型判定+デフォルト値という別の方法で実現できます
import os, sys def tracelog(s='', n=40): if isinstance(n, int): print '-'*n else: print '-'*40 if isinstance(s, str): print s elif isinstance(s, list): s1 = '' for x in s: s1 = s1 + ' ' + x print s1 def main(): tracelog(n=50) tracelog(sys.argv) tracelog(n=20)
main( )
import os, sys def tracelog(s='', n=40): if isinstance(n, int): print '-'*n else: print '-'*40 if isinstance(s, str): print s elif isinstance(s, list): s1 = '' for x in s: s1 = s1 + ' ' + x print s1 def main(): tracelog(n=50) tracelog(sys.argv) tracelog(n=20) main()
上記のコードは、tracelog 関数を定義します。この関数は、s パラメーターを文字列またはリストとして出力し、指定された長さの水平線を出力することもできます。その中には次のものがあります。 isinstance 関数 これは、オブジェクトが特定のタイプであるかどうかを判断するために使用される関数であり、2 番目のパラメーターはオブジェクト タイプであり、type 関数を通じてクエリできます。