Portál AbcLinuxu, 10. května 2025 02:18

Dotaz: Python3.4 - Záhada při volání funkce

23.2.2016 20:35 Python
Python3.4 - Záhada při volání funkce
Přečteno: 453×
Odpovědět | Admin
Ahoj, mám funkci foo(), když ji zavolám bez parametru foo(), tak se vypíše 'foo', když ji zavolám s parametrem 'bar' foo('bar'), tak se nevypíše 'bar' ale překvapivě 'foo'. Co je špatně ? Díky
import os
def foo(par='foo') :
  os.system('clear')
  print(par)


>>>foo()
foo

>>>foo('bar')
foo

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.2.2016 21:15 Olaf
Rozbalit Rozbalit vše Re: Python3.4 - Záhada při volání funkce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jede to v pohodě.
pavlix avatar 24.2.2016 00:35 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Python3.4 - Záhada při volání funkce
Odpovědět | | Sbalit | Link | Blokovat | Admin
To asi nebude minimální reproducer, že? To volání clear je tam zřejmě úplně zbytečné. Navíc to funguje přesně, jak to fungovat má a druhé volání vypisuje bar.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
25.2.2016 12:40 Python
Rozbalit Rozbalit vše Re: Python3.4 - Záhada při volání funkce
Reproducer ? Co to je ? Proč by tam měl být clear úplně zbytečně ?
25.2.2016 12:43 chrono
Rozbalit Rozbalit vše Re: Python3.4 - Záhada při volání funkce
Myslel tým, že to nie je kód, pomocou ktorého by sa dala reprodukovať tá chyba (pretože ten kód robí presne to, čo robiť má).
pavlix avatar 25.2.2016 13:43 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Python3.4 - Záhada při volání funkce
Reproducer ? Co to je ?
Reproducer je postup nebo kód, který vede k reprodukci chyby, tedy k tomu, abych já mohl zkusit, zda se chyba skutečně projevuje. Minimální reproducer je reproducer, který obsahuje jen to, co je k reprodukci chyby potřeba a nic navíc. Minimální reproducer bývá očekáván v bug reportech a dotazech v poradnách proto, aby se reagující nemuseli zabývat balastem a mohli se soustředit na konkrétní problém.
Proč by tam měl být clear úplně zbytečně ?
Pokud se musíš takhle ptát, tak je zbytečné stoprocentně, jinak bys ho dokázal bez problémů zdůvodnit. Myslím, že jsi zmatený a bůhví, co jsi vlastně spouštěl.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
25.2.2016 15:02 lofcek
Rozbalit Rozbalit vše Re: Python3.4 - Záhada při volání funkce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Moj tip - takto mohol vypadat minimalny reprodukovatelny kod chyby:
def foo(par=['foo']) :
    print(par)
    par.append('no ty vole')

foo()
foo()
foo()
foo()
A vysvetlenie sa ukryva v tom, ze objekt s default value sa konstruuje iba raz na zaciatku.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.