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

Posted 卿本佳人_奈何

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中的函数参数:位置参数默认参数可变参数关键字参数和命名关键字参数的主要内容,如果未能解决你的问题,请参考以下文章

Python,可变长度位置参数后的默认关键字参数

Python的位置参数、默认参数、关键字参数、可变参数区别

Python的位置参数默认参数关键字参数可变参数

Python入门-5函数:06参数类型-位置参数-默认值参数-命名参数-可变参数-强制命名参数

[python][oldboy]关键字参数和位置参数,默认参数,可变长参数(无名,有名)

python的位置参数默认参数关键字参数可变参数区别