赞
赏
Python 中 函数 的 参数,除了支持位置参数外,即,形参的位置与个数需要与实参的位置和个数一一对应,还可以使用关键字参数。
关键字参数,就是我们在函数传递实参时,可以通过参数名指定,我们具体传递的是哪个形参,但关键字参数的实参和形参的个数还必须是一一对应的。
def func_name(param1, param2){
# 执行语句...
return val
}
#调用函数
func_name(p1, p2)
我们定义了一个函数,函数名为 func_name,该函数有两个位置参数,在函数调用时,我们需要同样的传入两个参数。
这里的实参 p1 对应的就是形参 param1,实参 p2 对应的就是形参 param2。
def func_name(param1, param2){
# 执行语句...
return val
}
# 调用函数
func_name(param1 = p1, param2 = p2)
func_name(param2 = p2, param1 = p1)
参数 | 描述 |
---|---|
def | 定义函数所使用的关键字,所有的函数前面都必须使用该关键字。 |
func_name | 函数的名称。 |
param1 | 函数的形参1。 |
param2 | 函数的形参2,函数可以有任意多个形参。 |
return | 后面接函数的返回值,函数的返回值只能有一个,可以是任意的数据类型。 |
我们定义了一个函数,函数名为 func_name,该函数接受两个参数。接着,我们两次调用了函数 func_name。
第一次调用时,我们通过关键字参数指定形参 param1 对应的实参为 p1,形参 param2 对应的实参为 p2,第二次调用,同样使用关键字参数指定实参和形参的对应关系。
这样,通过关键字参数,形参的顺序就不必跟实参的顺序一样了。
Python函数使用位置参数,则参数顺序和个数必须一一对应
print("嗨客网(www.haicoder.net)")
# Python函数使用位置参数,则参数顺序和个数必须一一对应
def area(a, b, c):
s = (a + b + c) / 2
ret = (s*(s-a)*(s-b)*(s-c)) ** 0.5
return ret
ret = area(3, 4, 5)
print("area =", ret)
程序运行后,控制台输出如下:
我们定义了一个函数 area,该函数传入三个参数 a、b 和 c,该函数实现的是求任意三角形的面积的逻辑,并通过返回值返回求得的面积。
最后,我们调用了 area 函数,并传入了三个参数,使用 ret 变量来接受 area 函数返回的值,最后使用 print 函数打印最后的结果。
因此,我们的函数的形参有三个,且这里使用的是函数的位置参数,因此,我们的实参的顺序和个数必须和形参完全保持一致。
Python函数使用位置参数,如果形参和实数个数不一样,程序报错
print("嗨客网(www.haicoder.net)")
# Python函数使用位置参数,如果形参和实数个数不一样,程序报错
def area(a, b, c):
s = (a + b + c) / 2
ret = (s*(s-a)*(s-b)*(s-c)) ** 0.5
return ret
ret = area(3, 4, 5, 6)
print("area =", ret)
程序运行后,控制台输出如下:
我们定义了一个函数 area,该函数传入三个参数 a、b 和 c,我们在调用该函数时,实参传递了四个,因此,实参和形参的个数不对应,程序报错。
Python 函数使用位置参数,则参数顺序可以不一致
print("嗨客网(www.haicoder.net)")
# Python函数使用位置参数,则参数顺序可以不一致
def sub(a, b):
return a - b
ret = sub(a = 1024, b = 512)
print("sub =", ret)
ret = sub(b = 512, a = 1024)
print("sub =", ret)
程序运行后,控制台输出如下:
我们定义了一个函数 sub,该函数传入两个参数 a 和 b,该函数实现的是求 a 和 b 的差的逻辑,并通过返回值返回求得的差值。
最后,我们使用了关键字参数的形式,两次调用了 sub 函数,第一次调用时,首先显式指定形参 a 的值为 1024,形参 b 的值为 512,第二次调用时,首先显式指定形参 b 的值为 512,形参 a 的值为 1024。
我们打印两次调用的结果,发现都是一样的正确的结果,因此,使用函数的关键字参数,实参的顺序和形参的顺序不必完全保持一致。
Python 函数使用位置参数,参数个数必须一致
print("嗨客网(www.haicoder.net)")
# Python函数使用位置参数,参数个数必须一致
def sub(a, b):
return a - b
ret = sub(b = 512)
print("sub =", ret)
程序运行后,控制台输出如下:
我们定义了一个函数 sub,该函数传入两个参数 a 和 b,我们使用位置参数调用该函数时,实参传递了一个,因此,实参和形参的个数不对应,程序报错。
关键字参数,就是我们在函数传递实参时,可以通过参数名指定,我们具体传递的是哪个形参,但关键字参数的实参和形参的个数还必须是一一对应的。Python 函数关键字参数定义:
def func_name(param1, param2){
# 执行语句...
return val
}
# 调用函数
func_name(param1 = p1, param2 = p2)
func_name(param2 = p2, param1 = p1)