python函数参数定义顺序_[python]函数默认参数顺序问题
1、python2、python3 三者順序是:位置參數、默認參數、*args
def foo(x,y=1,*args):passfoo (1,2,3,4,5) // 其中的x為1,y=1的值被2替換,3,4,5都給args,即args=(3,4,5)
2、python3 三者順序是:位置參數、*args、默認參數
def foo(x,*args,y=1):passfoo (1,2,3,4,5) // 其中的x為1,2,3,4,5都給args,即args=(2,3,4,5),y始終為1
3、python2、python3 **kwargs與位置參數、*args、默認參數混用
**kwargs:可變字典長度(表示的就是形參中按照關鍵字傳值把多余的傳值以字典的方式呈現)
位置參數、*args、**kwargs三者的順序必須是位置參數、*args、**kwargs
def foo(x,*args,**kwargs):passfoo (1,2,3,4,y=5,a=6,b=7) // 其中的x為1,2,3,4都給args,即args=(2,3,4),y=5,a=6,b=7以字典形式傳給kwargs,即kwargs={'y':5,'a':6,'b':7}
python2參數順序:必選參數、默認參數、可變參數,關鍵字參數。
python2中,默認參數必須在可變參數之前
Python3參數順序:必選參數,默認參數,*args,**kwargs
python3中,*args也可以在默認參數前,誰在前誰優先拿到值
python2和python3相同的是:
1、必選參數必選在默認參數之前
2、關鍵字參數在最后
參考:
總結
以上是生活随笔為你收集整理的python函数参数定义顺序_[python]函数默认参数顺序问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阶跃函数卷积自己_如何看待大神/老师说“
- 下一篇: python二分法排序_python实现