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引數列印出來,s引數可以是字串或列表,同時還能列印指定長度的橫線
其中:isinstance函式就是用來判斷物件是否為特定型別的函式,第二個引數就是物件型別,可以透過type函式查詢到。