Parámetro solo posicional en Python3.8

Python presenta la nueva sintaxis de función en la versión Python3.8.2 , donde podemos introducir la /barra inclinada para comparar el parámetro posicional que viene antes de la /barra y los parámetros que vienen después *son argumentos de palabra clave. El resto de los argumentos que se interponen /y *pueden ser de tipo posicional o de palabra clave.
Eso significa que podemos combinar argumentos posicionales y argumentos regulares de tal manera que todos los argumentos no posicionales vengan después de /la barra oblicua.

Sintaxis:

def function(a, b, /, c, d, *, e, f):
     # Function Body
     pass 

Donde a y b son argumentos posicionales, c y d pueden ser posicionales o de palabra clave o e y f son estrictamente argumentos de tipo palabra clave.

En la imagen que se muestra a continuación, podemos ver que la función de potencia es una función integrada en la biblioteca matemática de Python y esta función usa una /barra inclinada para habilitar el argumento solo posicional y ahora podemos implementar la misma funcionalidad con la ayuda de esta versión.

Ejemplo n.º 1:
en este ejemplo, podemos ver que al usar el argumento solo posicional podemos implementar la función con la posición fija, como podemos decir solo en funciones integradas antes de esta versión de Python. Con la ayuda de esto, podemos hacer que nuestro programa sea más sólido.

# 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

Producción :

Ejemplo #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

Producción :

Publicación traducida automáticamente

Artículo escrito por Jitender_1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *