python的位置参数、默认参数、关键字参数、可变参数区别
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python的位置参数、默认参数、关键字参数、可变参数区别,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2377字,纯文字阅读大概需要4分钟。
内容图文
![python的位置参数、默认参数、关键字参数、可变参数区别](/upload/InfoBanner/zyjiaocheng/829/3a3989bf98f843d780b3caf228293a33.jpg)
一、位置参数
调用函数时根据函数定义的参数位置来传递参数
#!/usr/bin/env python # coding=utf-8 def print_hello(name, sex): sex_dict = {1: u'先生', 2: u'女士'} print 'hello %s %s, welcome to python world!' %(name, sex_dict.get(sex, u'先生')) # 两个参数的顺序必须一一对应,且少一个参数都不可以 # print_hello('tanggu', 1)
二、关键字参数
用于函数调用,通过“键-值”形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序要求
# 以下是用关键字参数正确调用函数的实例 # print_hello('tanggu', sex=1) # print_hello(1, name='tanggu') # print_hello(name='tanggu', sex=1) # print_hello(sex=1, name='tanggu') # 以下是错误的调用方式 # print_hello(name='tanggu', 1) # print_hello(sex=1, 'tanggu')
有关键字参数,一定要放到参数的最后,否则在执行代码时,会报错。
有位置参数时,即普通参数,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序的
三、默认参数
用于定义函数,为参数提供默认值,调用函数时可传可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)
# 正确的默认参数定义方式--> 位置参数在前,默认参数在后 def print_hello(name, sex=1): .... # 错误的定义方式 def print_hello(sex=1, name): .... # 调用时不传sex的值,则使用默认值1 # print_hello('tanggu') # 调用时传入sex的值,并指定为2 # print_hello('tanggu', 2)
四、可变参数
定义函数时,有时候我们不确定调用的时候会传递多少个参数(不传递也可以)。此时,可用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会显得非常方便。
1、包裹位置传递
def func(*args): .... # func() # func(a) # func(a, b, c)
我们传进的所有参数都会被args变量收集,它会根据传递进参数的位置合并为一个元组(tuple),args是元组类型,这就是包裹位置传递
2、包裹关键字传递
def func(**kargs): .... # func(a=1) # func(a=1, b=2, c=3)
kargs是一个字典(dict),收集所有关键字参数
五、解包裹参数
*和**,也可以在函数调用的时候使用,称为解包裹(unpacking)
1、在传递元组时,让元组的每一个元素对应的一个位置参数
def print_hello(name, sex): print name, sex # args = ('tanggu', '男') # print_hello(*args) # tanggu 男
2、在传递词典字典时,让词典的每个键值对作为一个关键字参数传递给函数
def print_hello(kargs): print kargs # kargs = {'name': 'tanggu', 'sex', u'男'} # print_hello(**kargs) # {'name': 'tanggu', 'sex', u'男'}
六、位置参数、默认参数、可变参数的混合使用
基本原则是:先位置参数,默认参数,包裹位置,包裹关键字(定义和调用都应遵循)
def func(name,age,sex=1,*args,**kargs): pirnt name,age,sex,args,kargs #func('tanggu'.23,2,'music','sprot',class=2) #tanggu 23 2 ('music','sport') {'class'=2}
Python中的*args和**kwsrgs的区别
先来看个例子
内容总结
以上是互联网集市为您收集整理的python的位置参数、默认参数、关键字参数、可变参数区别全部内容,希望文章能够帮你解决python的位置参数、默认参数、关键字参数、可变参数区别所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。