📜  Python3.8 中的仅位置参数

📅  最后修改于: 2022-05-13 01:54:47.352000             🧑  作者: Mango

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

输出 :