Configuración del valor predeterminado de una entrada de función para igualar otra entrada en Python

Considere la siguiente función, que no funciona en Python, pero la usaré para explicar lo que debo hacer.

def exampleFunction(a, b, c = a): ...function body... 

Es decir, quiero asignar a la variable c el mismo valor que tomaría la variable a , a menos que se especifique un valor alternativo. El código anterior no funciona en python. ¿Hay alguna forma de hacer esto?

Gracias.

 def exampleFunction(a, b, c = None): if c is None: c = a ...function body... 

El valor predeterminado para el argumento de palabra clave no puede ser una variable (si lo es, se convierte en un valor fijo cuando se define la función). Se usa comúnmente para pasar argumentos a una función principal:

 def main(argv=None): if argv is None: argv = sys.argv 

Este patrón general es probablemente el mejor y el más legible:

 def exampleFunction(a, b, c = None): if c is None: c = a ... 

Debe tener cuidado de que None no sea un estado válido para c .

Si desea admitir valores ‘Ninguno’, puede hacer algo como esto:

 def example(a, b, *args, **kwargs): if 'c' in kwargs: c = kwargs['c'] elif len(args) > 0: c = args[0] else: c = a 

Un enfoque es algo como:

 def foo(a, b, c=None): c = a if c is None else c # do something