Python中的函数参数(位置参数默认参数可变参数关键字参数和命名关键字参数)

枕上从妨一夜睡,灯前读尽十年诗。这篇文章主要讲述Python中的函数参数:位置参数默认参数可变参数关键字参数和命名关键字参数相关的知识,希望能为你提供帮助。
函数的参数python中函数定义非常简单,由于函数参数的存在,使函数变得非常灵活应用广泛;不但使得函数能够处理复杂多变的参数,还能简化函数的调用。
Python中的函数参数有如下几种:位置参数、默认参数、可变参数、关键字参数和命名关键字参数
一、位置参数位置参数(positional arguments)就是其他语言的参数,其他语言没有分参数的种类是因为只有这一种参数,所有参数都遵循按位置一一对应的原则。
计算x^2 的函数:

def power(x): return x * x power(2)

对于power(x) 函数,参数x就是一个位置参数,也叫做必选参数。当我们调用power函数时,必须传入有且仅有的一个参数x。
\\
现在,如果我们要计算 x^3 怎么办?可以再定义一个power3 函数,但是如果要计算 x^4 、 x^5 ……怎么办?我们不可能定义无限多个函数。
你也许想到了,可以把power(x) 修改为power(x, n) ,用来计算 x^n ,说干就干:
def power(x,n): s = 1 while n > 0: s = s*x n = n-1 return s

对于这个修改后的power(x, n) 函数,可以计算任意n次方
print(power(2,10)) print(power(1,10))

这种写法当然是可行的,问题是太繁琐,所以Python允许你*在list或tuple前面加一个号**,把list或tuple的元素变成可变参数传进去:
nums = [2,3,4] print(calculator(*nums))

形式:**kw 这是惯用写法,建议使用,容易被理解
def stu_info(name,gender,**kw): print(\'name is:\',name,\' gender is:\',gender,\' other is :\',kw) stu_info(\'Bob\',\'M\',age=7,city=\'TJ\') stu_info(\'Lucy\',\'F\',city=\'BJ\')

格式:在关键字参数前增加一个”*”。
def stu_info(name,gender,*,age,city): print(\'name is:\',name,\' gender is:\',gender,\' age:\',age,\' city:\',city) stu_info(\'Bob\',\'M\',age=7,city=\'TJ\') stu_info(\'Lucy\',\'F\',city=\'BJ\',age=10)

顺序:位置参数、默认参数、可变参数、命名关键字参数和关键字参数。
def function(a, b, c=0, *, d, **kw): print(\'a =\', a, \'b =\', b, \'c =\', c, \'d =\', d, \'kw =\', kw)

【Python中的函数参数(位置参数默认参数可变参数关键字参数和命名关键字参数)】可读性是代码的一个很重要的要求,所以尽量避免使用多种参数的组合。

    推荐阅读