ホームページ >バックエンド開発 >Python チュートリアル >Pythonのオブジェクト型判定と関数のオーバーロード

Pythonのオブジェクト型判定と関数のオーバーロード

高洛峰
高洛峰オリジナル
2016-10-19 14:57:291372ブラウズ

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 関数を通じてクエリできます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。