On 09/04/14 09:38, Rock Neurotiko wrote:
x = []
Pero se lo estás pasando en la línea:
def foo(x = []):

Según lo que leo, la función crea una variable x, y le asigna un valor x.append(1), en ningún momento la destruye ni la reinicia.

La variable x se queda en memoria y por lo tanto al llamar de nuevo la función foo() se agrega un valor a la lista, recuerda que las listas son mutables.

Para que siempre tengas un mismo valor mejor sería usar una tupla:

def foo(x=()):
    x = (1)
    print(x)


foo()
1

foo()
1

tal como se describe en la resolución de variables locales y globales de Python.
Es mi observación, salvo mejor opinión,
_______________________________________________
Python-es mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a