Python基礎 函式引數的工作方式

2021-08-19 20:44:30 字數 959 閱讀 8466

在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:

hello! now i'm going to call 0.6

*args和**kwargs不僅可以在函式定義中使用,還可以在函式呼叫中使用。在呼叫時使用就相當於pack(打包)和unpack(解包),類似於元組的打包和解包。

def demo(a,b,c,d):

print(a,b,c,d)

demo(1,*(2,3),**)

#output

#1 2 3 4

Python基礎 函式 函式引數

引數就是傳入的值 示例 usr bin env python3 coding utf 8 函式的引數和預設引數 defregist name,age,city shenzhen print name name print age age print city city 執行結果 d pythonpr...

Python基礎(函式引數)

1.必選引數parameter def detail1 name,age,tel print 姓名 name print 年齡 age print tel detail1 qiye 12 123456 2.預設引數parameter value def detail2 name,age,tel,ge...

Python基礎之函式的引數

在學習python過程中感謝廖雪峰的 def 函式名 引數1 引數2 引數3.函式體 returnpython函式的建立非常簡單,但是靈活度卻非常大。因此寫下此篇文章用於鞏固學習。首先我們定義乙個求乙個數的平方 def getresult x return x x此時引數x 即為位置引數,當我們呼叫...