在编写库函数时经常会遇到这样一种情况:由于任务不同,一个函数经常会传入的入不同的个数,而有些参数并非是必选的。本文将首先讲解函数参数类型,然后讲解如何判断该参数是否传入并给出示例。
1.参数类型:必选参数,默认参数,可变参数以及关键字参数
1.1 必选参数
顾名思义,就是函数必须有的入参
>>>def add(x,y):
... return x+y
>>>print(add(1,2))
>>>3
1.2 默认参数
在函数定义时给定一个初始值,在函数调用时可以不传这个参数,采用默认参数的值;如面程序所示,y=3为默认参数。
>>>def add(x,y=3):
... return x+y
>>>print(add(1))
>>>4
1.3 可变参数
顾名思义,函数参数的个数是可变的,如x为可变参数。
>>>def add(*x):
... sum = 0
... for i in x:
... sum+=i
... return sum
>>>print(add(1,2,3))
>>>6
1.4 关键字参数
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
>>>def add(x,**y):
... print(x,y)
>>>print(add(1,))
>>>1
2 如何判定可变参数以及关键字参数有值入参
2.1 判断可变参数有值入参方法
可选参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple,因此可以通过如下方式判断:
def add(*x):
if x == ():
print('无参数')
else:
print('有参数')
>>>无参数
2.2 判断是否有关键字参数传入
def add(**x):
if x == {}:
print('无参数')
else:
print('有参数')
print(add(x=1))
>>>有参数
引用
[1] https://www.cnblogs.com/SoaringLee/p/10532442.html
[2] https://blog.csdn.net/qq_36556893/article/details/90265395
作为一名非科班出身的教育技术学研究生,技术水平十分有限。近期看到教育工作者在处理数据是比较困难,包括本教育技术学的科研工作者在面对大批量数据时也是束手无策,于是萌生了为教育工作者写一个开源库的想法,意图通过简单的几行代码就可以完成诸如文件合并、字符云等复杂功能。欢迎关注该项目,如果有同学在此方面感兴趣和可以和我联系,我们一起维护该项目!
本人感兴趣的研究方向:复杂系统计算与可解释性的深度学习以及自然语言处理。微信公众号:SMNLP;个人博客:www.litan.tech。