Python基礎:函數參數的工作方式

在python中,函數參數的工作方式其實很簡單。當你編寫func(a,b,c,d=some,e=value)時,位置和關鍵字參數其實分別是被打包成元組和字典的。函數實際接收到的是一個元組args和一個字典kwargs,並在內部完成如下轉換:

a,b,c=args

d=kwargs.get('d',d_default_value)

e=kwargs.get('e',e_default_value)

這一切都是在幕後悄悄發生的。當然,它還會執行一些錯誤檢查,還允許你將位置參數當成關鍵字參數那樣進行指定(即使它們在函數定義中並不是關鍵字參數)。

def say_hello_then_call_f(f,*args,**kwargs):
    print("args is: ",args)
    print("kwargs is: ",kwargs)
    print("Hello! Now I'm going to call %s"%f)
    return f(*args,**kwargs)
def g(x,y,z=1):
    return (x+y)/z

print(say_hello_then_call_f(g,1,2,z=5.))

然後,如果我們通過調用g,就會得到:

args is:  (1, 2)
kwargs is:  {'z': 5.0}
Hello! Now I'm going to call <function g at 0x7f4330d041e0>
0.6


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章