https://docs.python.org/3/tutorial/controlflow.html#default-argument-values
El día 8 de abril de 2014, 12:02, Rock Neurotiko <[email protected]> escribió: > Muy buenas, > > Hace bastante que no escribo, pero hoy me he encontrado por reddit con un > articulo en el que comenta una cosa de python, y no entiendo perfectamente > que es lo que ocurre, asi que os pregunto, a ver si alguien sabe porqué > sucede :-) > > El codigo es este: > > def foo(x = []): > x.append(1) > print(x) > > foo() > foo() > foo() > [...] > > Recomiendo ejecutar, ya que el resultado es soprendente (a no ser que > entiendas perfectamente como funciona python, o ya te hayas cruzado con esto > XD) > > Y ahora mi pregunta: ¿Porqué sucede esto? > Sé que tiene algo que ver con que Python al ejecutar la funcion la recorre > buscando las variables que vaya a usar, y las guarda en el scope, en el > primer caso x viene del parametro (que seria []). > Como en python todo es un objeto, la llamada a foo() se queda como > "instanciado", por lo que las siguientes ejecuciones, al buscar "x" la > encuentra. > > No se si me explico, tampoco se si es eso, lo cierto es que estoy bastante > confuso con esto XD > > Un saludo! > > > -- > Miguel García Lafuente - Rock Neurotiko > > Do it, the devil is in the details. > The quieter you are, the more you are able to hear. > Happy Coding. Code with Passion, Decode with Patience. > If we make consistent effort, based on proper education, we can change the > world. > > El contenido de este e-mail es privado, no se permite la revelacion del > contenido de este e-mail a gente ajena a él. > > _______________________________________________ > Python-es mailing list > [email protected] > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > _______________________________________________ Python-es mailing list [email protected] https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
