标签:mike python gender 关键字 理解 参数 kwargs print
简介
大家都知道,在java中,函数或者方法的参数在调用时必须对其进行传参操作,也就是所谓的必选参数,也可以称为位置参数,除此之外,python还拥有其他语言不具有的一些参数类型,以下将进行一一介绍。
必选参数
必选参数,又称位置参数,是大多数语言都会有的参数类型, 此参数在调用是必须进行传参。
# 必选参数
def sum(x, y):
return x + y
print(sum(1,2))
默认参数
默认参数一般会拥有一个默认值,当对默认参数传参时,和必选参数作用类似,当不对默认参数传参时,则使用默认参数的默认值
# 默认参数
def plus(x, y, z=1):
return x + y + z
print(plus(1,2))
print(plus(1,2,3))
可变参数
可变参数主要是为了方便在参数未知的情况下传递参数值,可变参数一般是以元组(tuple)的形式调用, 符号为*args
# 可变参数
def sum2(*args):
print(args)
total = 0
for item in args:
total += item
return total
print(sum2(1,3,4))
(1, 3, 4)
8
关键字参数
与可变参数类似,都是为了方便进行参数未知情况下的参数传递,不同的是传递的参数值是键值对形式,关键字参数一般是以字典(dict)形式传递,符号为**kwargs
# 关键字参数
def test(**kwargs):
print(kwargs)
test(name='mike', age=14, gender='man')
{'name': 'mike', 'age': 14, 'gender': 'man'}
命名关键字参数
命名关键字参数是从关键字参数衍生而来的,对关键字参数做了进一步的限制,符号为*
# 命名关键字参数
def test2(name, age, *, gender, city):
print(name, age, gender, city)
# 命名关键字参数传递键值对形式时只能传递*后面规定的key值,不能减少或添加新的key值,否则会报错
test2('mike',18, gender='man', city='nanjing')
test2('mike',18, test=1, city='beijing')
mike 18 man nanjing
Traceback (most recent call last):
File "/home/ts/flask_study/python参数类型/param.py", line 36, in <module>
test2('mike',18, a=1, city='beijing')
TypeError: test2() got an unexpected keyword argument 'a'
参数的顺序
由于存在多种参数,且部分参数的符号类似,因此,在进行多参数设置时需要考虑参数的顺序,顺序如下
必选参数(位置参数)、默认参数、可变参数、命名关键字参数和关键字参数。
def test3(a, b=1, *, d, **kwargs):
print(a,b,d,kwargs)
test3(1,b=2, d=2, name='mike', gender='man')
1 2 2 {'name': 'mike', 'gender': 'man'}
总结
1.任何包含可变参数和关键字参数的函数都可以通过如下方式实现
func(*args, **kwargs)
2.为了代码更好的可读性,建议一次性不要使用过多的参数。
标签:mike,python,gender,关键字,理解,参数,kwargs,print
来源: https://www.cnblogs.com/xy-bot/p/16336695.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。