[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