🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #28340

Re: Prośba o wytknięcie błędów

#28340
From: Jordan Szubert
Date: Fri, 18 Nov 2011 14:34
44 lines
2325 bytes
Dnia 18-11-2011 o 13:32:02 hubert depesz lubaczewski <depesz@depesz.com>  
napisał(a):

> On 2011-11-18, Artur M. Piwko <milusi.pysiaczek@buziaczek.pl> wrote:
>>>> Alternatywnie (z tym, że trzeba uważać):
>>>> hash_dict[checksum] = []
>>>> hash_dict = {}
>>>
>>> na co uważać?
>>>
>>
>> Żeby nie rozpędzić się i nie napisać kiedyś tak:
>>
>> def fun(spam, eggs=[]):
>>     eggs.append(spam)
>>     print eggs
>>
>> fun(1)
>> fun('abc')
>
> ale z eggs=list() działa tak samo. w dodatku - czemu tak?
> gdy patrzyłem na ten kod, bez uruchamiania, to uznałem, że eggs jest
> przy każdym wywołaniu puste. czemu jego wartość została zachowana między
> wywołaniami funkcji?

w pythonie wyrazenia opisujace argumenty domyslne sa ewaluowane w czasie  
tworzenia funkcji, a nie przed kazdym wywolaniem, wiec wszytkie wywolania  
uzywajace argumentu domyslnego uzywaja tej samej instancji, a jest jest to  
obietk modyfikowalny, to modyfikacjie nie znikaja magicznie

ale:

def fun(spam,eggs=[]):
	eggs=eggs+[spam]
	print(eggs)

fun(1)
fun('abc')

ale tutaj nie modyfikujemy obkietu siedzacego pod nazwa eggs, a podpinamy  
pod ta nazwe inny obiekt

-- 
Jordan Szubert
Technical Details
Message-ID: <op.v45b2zxxhilul8@asus7p.home>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!goblin2!goblin.stu.neva.ru!xlned.com!feeder7.xlned.com!news2.euro.net!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <2h09p8-kgk.ln1@depesz.com> <slrnjc4841.8or.milusi.pysiaczek@buziaczek.pl> <1j8ap8-uiv.ln1@depesz.com> <slrnjcc2q2.ckt.milusi.pysiaczek@buziaczek.pl> <2rvhp8-0ch.ln1@depesz.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!goblin2!goblin.stu.neva.ru!xlned.com!feeder7.xlned.com!news2.euro.net!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Newsgroups: pl.comp.lang.python
Subject: Re: Prośba o
 wytknięcie błędów
References: <2h09p8-kgk.ln1@depesz.com> <slrnjc4841.8or.milusi.pysiaczek@buziaczek.pl> <1j8ap8-uiv.ln1@depesz.com> <slrnjcc2q2.ckt.milusi.pysiaczek@buziaczek.pl> <2rvhp8-0ch.ln1@depesz.com>
Date: Fri, 18 Nov 2011 15:34:01 +0100
MIME-Version: 1.0
From: "Jordan Szubert" <usenet@joru.us.to>
Organization: HELL inc.
Message-ID: <op.v45b2zxxhilul8@asus7p.home>
User-Agent: Opera Mail/11.52 (Win32)
Lines: 57
NNTP-Posting-Host: 83.26.235.131
X-Trace: 1321626853 unt-rea-a-01.news.neostrada.pl 2183 83.26.235.131:23732
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit