第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > Python 3.X | 一文看懂不懵圈:位置参数(必选参数) 默认参数 可变参数 关键字

Python 3.X | 一文看懂不懵圈:位置参数(必选参数) 默认参数 可变参数 关键字

时间:2020-11-03 09:55:51

相关推荐

Python 3.X | 一文看懂不懵圈:位置参数(必选参数) 默认参数 可变参数 关键字

Win 10+Python 3.6.3

不管是什么参数,它们身处环境是:函数(function)。参数让函数如虎添翼,灵活、强大。

1、概念释义:

def func(x, y=2, *arg, *, z, **kwargs):#print(x, y)#print(len(arg), arg[0])print(kwargs)#func(1)#func(y=3, x=4)#func(1, 3, 4, 5)d = {'a':1, 'b':2}func(1, **d)

上述代码中:

函数定义过程中的如xy,称之为:形参(parameter);调用函数时(如func(1))分别传递给xy的值12,称之为:实参(argument)。是具体、实际的值;在函数调用(如func(1))时,根据函数定义的参数位置来传递的参数x,称之为:位置参数(也称 必选参数);它是缺一不可的,如果有多个位置参数,顺序得一一对应。在函数定义时,为形参y赋 初始值,称之为:默认参数。即 定义了默认的值的参数。在调用函数时,可传也可不传该已赋初值的参数。不管在函数定义、还是调用,所有位置参数必须出现在默认参数之前。且默认参数一定要用不可变对象,否则运行时报错。使用默认参数能降低调用函数的难度。在函数定义时,带一个*号的参数(如args),称之为:可变参数(传入的参数个数的可变的,0~n个)。它用于收集参数,接收的是一个元组tuple(或列表list)。如果可变参数后面还要加上其他定制的参数,那么在定义函数时,必须使用关键字参数(如kwargs,前面带了两个**号,接收的是一个字典dict。在调用时,对其赋值,采用“键-值”形式,如d)来定制,否则Python会认为这些是可变参数。In other words,关键字参数参数允许传入0~n个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。关键字参数的命名是不受限制的,但若要限制调用者传入的参数名,同时也可以提供默认值(可选的),这就是命名关键字参数(如z)。在没有可变参数的情况下(有,则不用加*),必须加一个*号作为特殊分隔符,否则Python解释器无法识别位置参数和命名关键字参数。

2、参数组合:

在Python定义函数时,可使用位置参数、默认参数、可变参数、关键字参数、命名关键字参数,这5种都可以组合使用。但是,参数定义的顺序必须如下:调用时也得遵循

尽管可以组合多达5种参数,但是,不要同时使用太多组合,否则函数接口的可理解性将很差。

小结:

Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。定义函数时,将参数的名字、位置确定后,函数的接口定义就完成了。对于函数调用者而言,只需知道如何传递正确的参数、返回什么样的值就足够了,至于函数内部封装的复杂逻辑,调用者无需了解。

Python 3.X | 一文看懂不懵圈:位置参数(必选参数) 默认参数 可变参数 关键字参数 形参 实参...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。