python中函数的参数形式

python中函数的参数可以是位置参数也可以是关键字参数,如:

def func(a, b, c):
    return " ".join((c, b, a))
#将函数的参数倒置并以字符串的形式输出

print(func("i", "love", "cloud"))
## cloud love i
#位置参数传入
print(func(c="i", b="love", a="cloud"))
## i love cloud
#关键字参数传入

同时位置参数和关键字参数可以混合使用,但是要注意的是位置参数一定要在关键字参数前。

def func(a, b, c):
    return " ".join((c, b, a))
#将函数的参数倒置并以字符串的形式输出

print(func("i", c="cloud", b="love"))
## cloud love i
#位置参数和关键字参数混合使用

函数定义时也可以通过关键字参数的形式定义默认参数

def func(a, b, c="cloud"):
    return " ".join((c, b, a))
#将函数的参数倒置并以字符串的形式输出

print(func("i", "love"))
## cloud love i
#c参数的默认值确定,可以不输入


print(func("i", "love", "star"))
## star love i
#c参数的默认值确定,也可以通过输入参数来改变输出值

同理,函数中的关键字形式默认参数也只能放在位置参数后。此时输入的参数也可以关键字参数和位置参数混用。

库函数中对位置函数和关键字函数的要求:

我们可以通过help()函数查看函数文档,会有如下发现。

help(abs)
## Help on built-in function abs in module builtins:
##
## abs(x, /)
##     Return the absolute value of the argument.

help(sum)
## sum(iterable, /, start=0)

其中函数内都带有斜杠‘ / ’,其表示斜杠左边的参数都必须传入位置参数而不能是关键字参数。而斜杠右侧则都可以使用。如

s = sum([1, 2, 3], 1)
print(s)
a = sum([1, 2, 3], start=1)
print(a)
## 7
## 7
#第一个参数填入可迭代对象,第二个参数填入起始值

因此,我们的自定义函数中也可以使用斜杠‘ / ’来控制传入参数的形式。

def func(a, b, /, c):
    print(a, b, c)

func(1, 2, c=3)
## 1 2 3

 同样的,也有控制只能使用关键字参数的方法‘ * ’。其中‘ * ’左边的参数可以任意用法,而其右边的参数只能使用关键字参数。

def func(a, b, *, c):
    print(a, b, c)

func(1, b=2, c=3)
## 1 2 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值