Python3.8 中的仅位置参数
Python在Python3.8.2版本中引入了新的函数语法,在这里我们可以引入/
正斜杠来比较/
斜杠之前的位置参数和*
之后的参数是关键字参数。 /
和*
之间的其余参数可以是位置或关键字类型的参数。
这意味着我们可以将位置参数和常规参数组合在一起,这样所有非位置参数都在/
斜线之后。
句法:
def function(a, b, /, c, d, *, e, f):
# Function Body
pass
其中 a 和 b 是位置参数,c 和 d 可以是位置参数或关键字,或者 e 和 f 是严格的关键字类型参数。
在下面给出的图像中,我们可以看到 power函数是 Python 数学库中的内置函数,该函数使用/
斜线来启用仅位置参数,现在我们可以在此版本的帮助下实现相同的功能。
示例 #1:
在这个例子中,我们可以看到,通过使用 positional only 参数,我们可以实现具有固定位置的函数,就像我们只能在这个Python版本之前的内置函数中说的那样。借助这一点,我们能够使我们的程序更加健壮。
# Positional-Only argument
def function(a, b, /, c, d, *, e, f):
print (a, b, c, d, e, f)
function(1, 2, 3, d = 4, e = 5, f = 6) # It works fine
function(1, 2, 3, d = 4, 5, f = 6) # Error occurred
输出 :
示例 #2:
# Positional-Only argument
def function(a, b, /, **kwargs):
print (a, b, kwargs)
function(1, 2, a = 4, b = 5, c = 6) # It works fine
function(a = 1, 2, a = 4, b = 5, c = 6) # Error occurred
输出 :