Article View: pl.comp.lang.python
Article #28340Re: Prośba o wytknięcie błędów
From: Jordan Szubert
Date: Fri, 18 Nov 2011 14:34
Date: Fri, 18 Nov 2011 14:34
44 lines
2325 bytes
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-mailReferences:
<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