[Python-es] Comportamiento de python.
Arturo Llaja Alarcón
artus.lla en autistici.org
Mie Abr 9 17:39:54 CEST 2014
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,
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140409/25203f9c/attachment.html>
Más información sobre la lista de distribución Python-es