function是可重複使用的程式碼片段
用關鍵字def來定義function
def functionName ():
#function body
#out of function
在定義fuction時的變數叫"parameters"
呼叫function實用的參數叫"arguments"
function中的變數若未特別聲明,都是local的,與function外部的同名變數無關
甚至改變傳入的變數值也不會對外部造成影響
ex:
def testFun(x):
x = 100
x = 0
testFun(x)
print(x) # get x = 0
但若function內尚未指定一變數,卻去提取該變數值,會提取到global範圍內的變數。但若提取後又指定同一變數,會產生error。
因此,最好還是在提取時 以global 明確指定該變數為global
ex:
def testFun(x):
global x #即使沒有宣告global仍可執行print()
print(x)
x = 100 #若未宣告 global 會發生與上一行的衝突
可以用global x,y,z 一次指定多個global變數
選擇性參數
def prints(mes, times = 1)
print(mes, times)
prints(hi) #>>>hi
prints(hi,2) #>>>hihi
選擇性參數必須在變數列的尾段
def fun(p1 = 1, p2): 是不合法的
以名稱指定參數
def f(p1, p2 = 1, p3 =1):
合法呼叫方式有 f(10),f(3,5), f(10, p3 = 5), f(p3 = 5, p1 = 10)
任意變數數量
def fun(*posPar, **namedPar):
for par in posPar:
print(par)
for key , val in namedPar.items():
print("key:{} vlaue:{}".format(key,val))
fun(1,2,3,a =4,b=5,c=6)
#get >>>
1
2
3
key:c vlaue:6
key:b vlaue:5
key:a vlaue:4
未指定的位置變數儲存到posPar的list中,未指定的指名變數儲存到namedPar的Dictionary中
function注解
在function後緊接的第一個程式區塊字串
註解的慣例是第一行以大寫開頭,句號結尾
第二行空白
接著寫詳細註解
要查詢詳細註解可以呼叫fun.__doc__
簡略註解(第一行)會在IDLE輸入"functionName(" 時
def fun():
'''This is a test fun.
test me...'''
pass
print(fun.__doc__)
or
def fun():
"This is a test func.\n\nTest mee."
pass
print(fun.__doc__)
help(fun)會回傳fun.__doc__
沒有留言:
張貼留言