python 函数参数定义有四类:

1、必选参数:调用函数时候必须赋值的参数。

a,须以正确的顺序传入函数
b,调用时的数量必须和声明时的一样

def exa(x):return x#b作为参数进入函数体内
b=1
print exa(b) #1
print exa()
#错误 TypeError: exa() takes exactly 1 argument (0 given)

2,默认参数:初始已经有值,在调用时未更改使用默认值

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def exa(x=1)return xprint exa() # 1
print exa(2) # 2

3,可变参数:不确定参数个数,会分配给带“*”参数

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def exa(*x)return xprint exa(1,2,3,4,5,6,6)
# (1,2,3,4,5,6,6)

4,关键字参数:使用关键字参数来确定传入的参数值。调用函数时带关键字后,顺序不影响。

def exa(x,y,z):return x,y,zprint exa(y=2,x=3,z=2) #(3, 2, 2)

Tips:可变元组参数和可变字典参数

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
*x
#可变元组参数,参数格式化存储在一个元组中,长度没有限制。
#python2必须位于普通参数和默认参数之后。
#python3可以位于默认参数之前def exa(*x):return x
print exa('ai', 'ni', 'ya')
#('ai', 'ni', 'ya')**x
#可变字典参数
#必须位于参数列表的最后面。
def exa(**x):return x
print exa(ai="爱",ni="你")
#{'ai': '爱', 'ni': '你'}

函数参数顺序

args与必选参数和默认参数混用

1、python2、python3 三者顺序是:位置参数、默认参数、*args

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def foo(x,y=1,*args):pass
foo (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):pass
foo (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

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def foo(x,*args,**kwargs):pass
foo (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]函数默认参数顺序问题相关推荐

  1. python函数参数定义顺序_[python]函数默认参数顺序问题

    1.python2.python3 三者顺序是:位置参数.默认参数.*args def foo(x,y=1,*args):passfoo (1,2,3,4,5) // 其中的x为1,y=1的值被2替换 ...

  2. python 函数 默认参数

    python 函数 默认参数 def add(a=1, b=2): # a,b设置默认参数c = a + breturn c c = add(a=2) # 如果不填,就是默认参数 print(c) 4

  3. Python函数默认参数陷阱

    阅读目录 可变对象与不可变对象 函数默认参数陷阱 默认参数原理 避免 修饰器方法 扩展 参考 请看如下一段程序: def extend_list(v, li=[]): li.append(v) ret ...

  4. 软件测试学习 之 Python 函数默认参数

    转载说明 作者:珞樱缤纷 出处:博客园 博文:Python进阶-函数默认参数 Python进阶-函数默认参数 写在前面 如非特别说明,下文均基于Python3 一.默认参数 python为了简化函数的 ...

  5. Python函数的参数顺序

    目录 01 位置形参与默认形参混用 ==> 位置形参在左,默认形参在右 01 可变长度的位置形参*args 和可变长度的关键字形参**kwargs的混用 ==> *args在左, **kw ...

  6. python函数默认参数位置_二十二、Python函数参数类型(位置、关键字、默认、不定长参数)...

    调用函数时可使用的参数类型 在调用Python函数时可使用的参数类型主要有以下几种: 必要参数(位置参数) 关键字参数 默认参数 不定长参数 必要参数(位置参数) 在Python中, 必要参数必须以正 ...

  7. python 函数默认参数的小坑

    默认参数和可变对象 在执行def语句时,默认参数的值只被解析并保存一次,而不是每次在调用函数的时候.这通常是你想要的那样,但是因为默认值需要在每次调用时都保持同样对象,你在试图改变可变的默认值(mut ...

  8. python函数默认参数_Python中函数的默认参数问题

    前几天,运营反馈了一个BUG,某些数据在写入数据库后,其时间字段出现异常,与当前时间相差较多. 由于代码是不是我写的,所以开始一遍阅读代码一遍排查问题. 在主流程中,仅仅发现了一个对时间赋值的语句,并 ...

  9. Python函数默认参数为空列表

    示例:  -测试命名比较随意- # foo?对象 def add(foo=[]):"""传入的参数为变量foo,指向的[]在定义函数之前创建,而不是每次执行前重新创建一个 ...

最新文章

  1. R语言使用car包的scatterplot函数根据分组变量在不同的分组拟合不同的模型并在散点图中可视化每个分组的拟合曲线、并添加边缘箱图
  2. HDOJ2795 Billboard【线段树】
  3. 层次分解位置编码,让BERT可以处理超长文本
  4. php判断外链,php检查字符串中是否有外链的方法
  5. 在Spring Boot里面,怎么获取定义在application.properties文件里的值
  6. python rsa 公钥解密_python使用rsa库做公钥解密(网上别处找不到)
  7. python运用在哪些地方_必看 | 2020年,Python十大应用领域介绍!
  8. adobe stream的最后一行空行_玩转Java8Stream(五、并行Stream)
  9. jlpt报名系统显示网络错误和服务器忙,批改网作文提交不了一直显示服务器或网络错误...
  10. 记录——《C Primer Plus (第五版)》第九章编程练习第六题
  11. 学习linux/unix编程方法的建议-转
  12. Root cause be too many concurrent connections error could not open clinet transport with jdbc uri
  13. Noise,Error,wighted pocket Algorithm
  14. 谁是应用软件商店急需的外援
  15. 生物信息服务器集群,IBM刀片服务器集群推动生物信息研究
  16. Arduino学习笔记—— 猜数字游戏
  17. 怎么注册Google Earth Engine(GEE)
  18. 【Unity实战100例】Unity制作脑图编辑工具(全网第一首发)
  19. 班级网页制作 HTML个人网页设计 我的班级网站设计与实现 大学生简单班级静态HTML网页设计作品 DIV布局班级网页模板代码 DW学生校园网站制作成品下载
  20. readiness与liveness

热门文章

  1. scanf———while(scanf (%lu,num) = =1)什么意思
  2. Apache CXF实现WebService发布和调用
  3. Cocos2d-X内存管理研究一
  4. Win XP系统的开机菜单具体含义
  5. SAP创建Web Service以及用ABAP调用
  6. 金科院男生大学4年赚50万 毕业前又接500万订单
  7. SAP 外向交货的包装功能实现
  8. ABAP实践学习--灰色的ALV显示
  9. nginx php默认首页,iis、apache、nginx设置默认首页index.html方法图解 电脑维修技术网...
  10. 问卷星作答能不能检测到屏幕共享_云端检测,别样精彩——大厂回族自治县王必屯中心小学线上期末检测纪实...