李坦(IT)学习空间 Instructional Technology and Big Data

Python自定义函数参数类型全解

2020-03-31
GarrettLee


在编写库函数时经常会遇到这样一种情况:由于任务不同,一个函数经常会传入的入不同的个数,而有些参数并非是必选的。本文将首先讲解函数参数类型,然后讲解如何判断该参数是否传入并给出示例。

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))
>>有参数

作为一名非科班出身的教育技术学研究生,技术水平十分有限。近期看到教育工作者在处理数据是比较困难,包括本教育技术学的科研工作者在面对大批量数据时也是束手无策,于是萌生了为教育工作者写一个开源库的想法,意图通过简单的几行代码就可以完成诸如文件合并、字符云等复杂功能。欢迎关注该项目,如果有同学在此方面感兴趣和可以和我联系,我们一起维护该项目!

本人感兴趣的研究方向:复杂系统计算可解释性的深度学习以及自然语言处理。微信公众号:SMNLP;个人博客:www.litan.tech


Similar Posts

Comments