请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

对Python中函数参数类型及排序问题,三个方面的总结

[复制链接]
查看: 59|回复: 0

1万

主题

2万

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
46395
发表于 2019-11-9 18:46 | 显示全部楼层 |阅读模式
Python中函数的参数题目有点复杂,重如果由于参数典范题目致使的情况比力多,下面来分析一下。
参数典范:缺省参数,关键字参数,不定长位置参数,不定长关键字参数。
实在总共可以分为 位置参数和关键字参数,由于位置参数被放在list里面,关键字参数放在dict里面,Python在解读的时候首先处置赏罚list,没有碰到关键字就append到list里面,碰到关键字了,就起头做dict直到竣事,所以,位置参数必须放在关键字参数前面。
这里总结出三个模子:
1:不存在缺省函数时:
  1. def test(a,*args,c,d=3,**kwargs):     print(a)     print(args)     print(c)     print(d)     print(kwargs)  test(1,2,3,4,c=1,d=4,e=11,f=22)
复制代码
运转结果:
  1. 1(2, 3, 4)14{'e': 11, 'f': 22}
复制代码
**2:存在缺省参数,参数取默许值,(缺省参数放在*args后背)**
  1. def test(a,*args,b=1,c,d=3,**kwargs):    print(a)    print(args)    print(b)    print(c)    print(d)    print(kwargs)test(1,2,3,4,c=1,d=4,e=11,f=22,h=66)
复制代码
运转结果:
  1. (2, 3, 4)1{'e': 11, 'f': 22, 'h': 66}
复制代码
**3:存在缺省参数,参数不取默许值,(缺省参数放在*args前面)**
  1. def test(a,b=1,*args,c,d=3,**kwargs):    print(a)    print(b)    print(args)    print(c)    print(d)    print(kwargs)test(1,2,3,4,c=1,d=4,e=11,f=22,h=66)
复制代码
运转结果:
  1. 12(3, 4)14{'f': 22, 'e': 11, 'h': 66}
复制代码
总结:
从上面也看出来了,实在底子顺序就是  位置参数--->关键字参数,然后就是缺省参数在 *args前后的题目了。
还有一点,前面已经说过,关键字参数被保存为字典型例,也就是无序的,可是 **kwargs 必要放在末端!
转自:https://www.cnblogs.com/Fruitzombie/p/8522217.html

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 妈妈网-中国妈妈第一,是怀孕、育儿、健康等知识交流传播首选平台 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表