python 参数
2018-06-17 23:54:48来源:未知 阅读 ()
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
一、必选参数
1 def power(x, n): 2 s = 1 3 while n > 1: 4 s *= x 5 n -= 1 6 return s
参数x,n为必选参数,当调用该函数时,必须传入这2个参数,否则会报错。
参数x,n这两个参数是位置参数,调用函数时,传入的两个值按照位置顺序依次赋给参数x和n。
二、默认参数
1 def power(x, n=2): 2 s = 1 3 while n > 1: 4 s *= x 5 n -= 1
给第二个参数设定默认值为2,当调用power(5)
时,相当于调用power(5, 2)。使用默认参数可以简化函数的调用。在使用默认参数的时候,必选参数必须要在默认参数的前面,默认参数必须指向不可变对象。
三、可变参数
1 def calc(*number): 2 sum = 0 3 for n in number: 4 sum += n * n 5 return sum
可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*
号。在函数内部,参数number
接收到的是一个tuple,调用该函数时,可以传入任意个参数,包括0个参数,calc(1, 2, 3)。Python允许你在list或tuple前面加一个*
号,把list或tuple的元素变成可变参数传进去,calc(*[1, 2, 3])。
四、关键字参数
1 def person(**kw): 2 for k in kw: 3 print(k, kw[k]) 4
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict,person(name='wang', city='beijing')。在参数前面加**接收关键字参数组成字典。可以在dict前加**,把dict当作关键字参数传进去,person(**{'name': 'wang', 'city': 'beijing'})。
五、命名关键字参数
1 def person(name, age, *, city, job): 2 print(name, age, city, job)
1 def person(name, age, *args, city, job): 2 print(name, age, city, job)
对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数。至于到底传入了哪些,就需要在函数内部通过kw
检查。如果要限制关键字参数的名字,就可以用命名关键字参数。和关键字参数**kw
不同,命名关键字参数需要一个特殊分隔符*
,或者函数定义中有一个可变参数,*或可变参数
后面的参数被视为命名关键字参数。
命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错,person('wang', 24, 'beijing', 'work')。
六、参数组合
顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
1 def function(a, b, *args, c, d, **kw): 2 pass
代码中:a,b为必选参数;args为可变参数;c,d为命名关键字参数;kw为关键字参数。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash