在python中定義一個函數的語法為:
def function_name(parameter_list):
"""function document string"""
function implement
return expression
def後放函數名稱,小括號內放所需參數,函數第一行可以接docstring放置函數註解文本,在有些提示工具中會顯示提示字樣,隨後放置函數功能實現程式碼,最後放置return回傳值
可給予一個或多個引數預設值,在呼叫函數時可以用幾種方式呼叫,如:
可選參數如果沒有全部使用,則按照填入順序指派預設參數,來看看下面的範例:
#%% Function parameter and default argument values
def hello_func(greeting, num = 2, name = 'You'):
print("{}, {}, {} Function.".format(greeting, num, name))
hello_func('Hi')
hello_func('Hi', 5)
hello_func('Hi', 'HowHow')
hello_func('Hi', 5, 'HowHow')
定義函數時可定義
* required argument 或是
* optional argument
#%% Keyword arguments
def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
print("-- This parrot wouldn't", action, end=' ')
print("if you put", voltage, "volts through it.")
print("-- Lovely plumage, the", type)
print("-- It's", state, "!")
呼叫函數時可選擇輸入
在呼叫函數時可以使用關鍵字來指定其參數值,不需要依照宣告順序來呼
keyword argument 必須跟在 positional argument 後面
parrot(1000) # 1 positional argument
print('---------------------------------------------')
parrot(voltage=1000) # 1 keyword argument
print('---------------------------------------------')
parrot(voltage=1000000, action='VOOOOOM') # 2 keyword arguments
print('---------------------------------------------')
parrot(action='VOOOOOM', voltage=1000000) # 2 keyword arguments
print('---------------------------------------------')
parrot('a million', 'bereft of life', 'jump') # 3 positional arguments
print('---------------------------------------------')
parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 keyword
# invalid
# parrot()
# required argument missing
# parrot(voltage=5.0, 'dead')
# non-keyword argument after a keyword argument
# parrot(110, voltage=220)
# duplicate value for the same argument
# parrot(actor='John Cleese')
# unknown keyword argument
不支援重載 overload
也就是說在python中同一個名稱空間,函數定義不能出現相同的名稱,若出現相同名稱,則後者覆蓋前者定義,在python中若需要使用不同參數個數來區分函數,則使用預設參數機制來解決
https://openhome.cc/Gossip/Python/DefStatement.html