En Python, entiendo que los argumentos predeterminados vienen al final y que los argumentos no predeterminados no pueden seguir un argumento predeterminado. Eso está bien. Como por ejemplo:Orden de argumentos predeterminados y no predeterminados
>>> def foo(x=0, y):
return x, y
SyntaxError: non-default argument follows default argument
Eso está bien como se esperaba.
Sin embargo, ¿qué pasa con el caso cuando quiero que el primer argumento sea uno predeterminado? Como por ejemplo, como se desprende del código anterior, x
tiene que ser el primer argumento y debe tener un valor predeterminado de 0.
¿Es posible hacer esto? Me pregunto porque incluso en la función range
, que supongo que es algo como esto:
def range(start=0, end):
pass
Entonces, ¿cómo se hace esto y si no es posible, ¿cómo se implementa range
? Tenga en cuenta que insisto en que el primer argumento sea el predeterminado, es decir, todo el punto. Estoy usando range
como ejemplo porque encaja perfectamente con mi problema. Por supuesto, uno podría implementar range
como def range(end, start=0)
, pero ese no es el punto.
Casi idéntico a mi respuesta, pero más claro y cinco minutos antes. Entonces, +1. –
Podría querer agregar un argumento 'step' para coherencia con el built-in. –
+1. Eso es perfecto. Me siento estúpido sin pensar en esto. – user225312