La barra diagonal (/) indica que todos los argumentos anteriores son argumentos solo posicionales. La característica de argumentos solo posicionales se agregó en python 3.8 después de que se aceptara PEP 570 . Inicialmente, esta notación se definió en PEP 457 - Notación para notación para parámetros solo posicionales
Los parámetros en la definición de la función anterior a la barra diagonal (/) son solo posicionales y los parámetros seguidos por la barra diagonal (/) pueden ser de cualquier tipo según la sintaxis. Donde los argumentos se asignan a parámetros posicionales únicamente basados únicamente en su posición al llamar a una función. Pasar parámetros de solo posición por palabras clave (nombre) no es válido.
Tomemos el siguiente ejemplo
def foo(a, b, / , x, y):
print("positional ", a, b)
print("positional or keyword", x, y)
Aquí, en la definición de función anterior, los parámetros a y b son solo posicionales, mientras que x o y pueden ser posicionales o palabras clave.
Las siguientes llamadas a funciones son válidas
foo(40, 20, 99, 39)
foo(40, 3.14, "hello", y="world")
foo(1.45, 3.14, x="hello", y="world")
Pero, la siguiente llamada de función no es válida, lo que genera una excepción TypeError ya que a, b no se pasan como argumentos posicionales sino que se pasan como palabras clave
foo(a=1.45, b=3.14, x=1, y=4)
TypeError: foo () tiene algunos argumentos posicionales pasados como argumentos de palabras clave: 'a, b'
Muchas funciones integradas en python aceptan argumentos posicionales solo donde pasar argumentos por palabra clave no tiene sentido. Por ejemplo, la función incorporada len acepta solo un argumento posicional (solo), donde llamar a len como len (obj = "hello world") dificulta la legibilidad, consulte help (len).
>>> help(len)
Help on built-in function len in module builtins:
len(obj, /)
Return the number of items in a container.
Los parámetros de solo posición hacen que las funciones subyacentes de c / library sean fáciles de mantener. Permite que los nombres de parámetros de solo parámetros posicionales sean cambios en el futuro sin riesgo de romper el código del cliente que usa API
Por último, pero no menos importante, los parámetros solo posicionales nos permiten usar sus nombres para ser utilizados en argumentos de palabras clave de longitud variable. Verifique el siguiente ejemplo
>>> def f(a, b, /, **kwargs):
... print(a, b, kwargs)
...
>>> f(10, 20, a=1, b=2, c=3) # a and b are used in two ways
10 20 {'a': 1, 'b': 2, 'c': 3}
Los parámetros solo posicionales se explican mejor aquí en Tipos de argumentos de función en python: Parámetros solo posicionales
La sintaxis de parámetros solo posicionales se agregó oficialmente a python3.8. Pedido que hay de nuevo python3.8 - sólo argumentos posicionales
Relacionado con PEP: PEP 570 - Parámetros solo de posición de Python
/
token, porque "es la operación inversa de*
" muestra, que Python está un poco loco. Es una especie de sinestesia.