每当你调用一个函数时假设
def f1(a, b):
pass
x = 10
y = 20
f1(x, y)
上面的值'x','y'是参数,'a','b'是参数。在函数/方法调用期间,这些变量被称为参数,因为您可以传递诸如“x”、“y”或“p”、“q”等任何内容。但在函数定义中,这些变量被称为参数,因为它们只是仅对于该功能,这就像对该功能的限制。
在 Python 中有位置参数、默认参数、非默认参数、关键字参数和命名参数的概念。
def f2(a, b=10):
pass
x = 10
y = 20
f2(x)
f2(x, y)
在上面的函数'b'是一个默认参数,它的默认值是10,如果每当调用函数f2并且只有1个'a'值会像f2(x)一样出现并且变量会' b' 为 10 且 'a' = 10。在 f2(x, y) 中,f2 函数的参数 'a'、'b' 将分别为 10、20。
永远记住,在函数调用中,位置参数首先出现,然后关键字/命名参数必须在后面,因为位置很重要。在函数定义中首先是非默认参数,然后是默认参数。根据您的函数调用,非默认值将对应于位置值,其余值将对应于剩余。
函数调用f2(x)的情况1,这里'x'是函数调用时的位置参数,函数定义中的'a'是位置参数,'y'是默认参数。
在函数调用 f2(x, y) 的情况 2 中,“x”和“y”都是位置参数,而在函数定义中,“a”和“b”现在都是位置参数,因为“y”将传递值 20到参数'b'。
仅当在任何函数调用(如案例 1 f1(x) 或 f1(p))中没有为该参数传递参数时,才会采用任何函数定义的默认值,然后将采用默认值,即 'b' = 10 和 ' a' 将是 'x' 或 'p'。
接下来假设,
def f3(a, b):
pass
f3(a=5, b=15)
f3(b=100, a=200)
上述调用 f3,其参数 'a' 为 5 和 'b' 为 15 是关键字/命名参数,因为它们具有与其值关联的名称/键。 “a”作为名称/键链接到值 5,对于“b”,“b”作为名称/键链接到值“15”。就像字典一样。
在函数调用期间,请确保名称/键必须与函数定义相同,否则我们会收到错误消息。还要确保在函数调用或函数定义中没有重复相同的参数/参数也会给我们带来错误。
您可以按任何顺序指定这些基于关键字/命名的参数。
就像案例 2 一样,我们有 f3(b=100, a=200)。在函数定义中,名称/键“a”对应于值 200,名称/键“b”对应于值 100。
def f4(a=1, b=2):
pass
f4()
f4(b=20)
f4(a=10)
f4(a=100, b=200)
f4(b=50, a=75)
在 f4 函数定义中,'a' 和 'b' 具有默认值 1 和 2。
在案例 1 中,将采用默认值。
在情况 2 中,仅传递 'b' 作为名称/键值 20,这将对应于函数定义中的 'b','a' 和 'b' 将分别为 1、20。
在案例 3 中,仅传递 'a' 作为名称/键值 10,这将对应于函数定义中的 'a','a' 和 'b' 将分别为 10、2。
在案例 4 中,“a”和“b”都作为名称/键值 50、75 传递,这将对应于函数定义中的“a”和“b”,“a”和“b”将为 75和50个。
请记住,名称/键参数仅适用于函数调用期间,例如 f4(a=3, b=4)。在函数定义期间def f5(a, b=20) 这里'a'是非默认参数或位置参数,'b'是默认参数,因为如果在函数调用f5期间没有传递'b'的值,则将采用默认值。