abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 05:22 | Zajímavý software

    QStudio, tj. nástroj pro práci s SQL podporující více než 30 databází (MySQL, PostgreSQL, DuckDB, QuestDB, kdb+, …), se stal s vydáním verze 5.0 open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 1
    dnes 04:55 | Nová verze

    Byla vydána nová verze 259 správce systému a služeb systemd (Wikipedie, GitHub).

    Ladislav Hagara | Komentářů: 0
    dnes 02:55 | Zajímavý článek

    Cloudflare Radar poskytuje aktuální informace o globálním internetovém provozu, útocích nebo trendech. Publikován byl celkový přehled za rok 2025. Globální internetový provoz vzrostl v roce 2025 o 19 %.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | IT novinky

    Správní rada americké mediální skupiny Warner Bros. Discovery (WBD) podle očekávání odmítla nepřátelskou nabídku na převzetí od firmy Paramount Skydance za 108,4 miliardy dolarů (2,25 bilionu Kč). Paramount podle ní neposkytl dostatečné finanční záruky. Akcionářům proto doporučuje nabídku od Netflixu.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Bezpečnostní upozornění

    Na WhatsAppu se šíří nový podvod, který ovšem vůbec nevypadá jako hackerský útok. Žádná krádež hesla. Žádné narušení zabezpečení. Žádné zjevné varovné signály. Místo toho jsou lidé trikem donuceni, aby útočníkům sami poskytli přístup, a to pouhým provedením toho, co vypadá jako běžný ověřovací krok. Bezpečnostní experti Avastu tento nový typ útoku nazývají ghostpairing, protože útočníci si při něm tiše vytvářejí „zařízení duchů“, které žije uvnitř vašeho účtu.

    Ladislav Hagara | Komentářů: 4
    včera 12:33 | Nová verze

    Český LibreOffice tým vydává aktualizaci překladu příručky LibreOffice Draw 25.8. Tato kniha se zabývá hlavními funkcemi programu Draw, vektorové grafické komponenty systému LibreOffice. Pomocí Draw lze vytvářet širokou škálu grafických obrázků. Příručka je ke stažení na stránce dokumentace a tým hledá dobrovolníky pro další překlady.

    ZCR | Komentářů: 1
    včera 04:00 | IT novinky

    Anthony Enzor-DeMeo je novým CEO Mozilla Corporation. Mozillu převzal po dočasné CEO Lauře Chambers. Vybudovat chce nejdůvěryhodnější softwarovou společnost na světě. Firefox by se měl vyvinout v moderní AI prohlížeč.

    Ladislav Hagara | Komentářů: 8
    16.12. 17:11 | Nová verze

    Byla vydána nová verze 9.20 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček RustDesk Server pro vzdálený přístup.

    Ladislav Hagara | Komentářů: 0
    16.12. 14:44 | Nová verze

    Jonathan Thomas oznámil vydání nové verze 3.4.0 video editoru OpenShot (Wikipedie). Představení novinek také na YouTube. Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.

    Ladislav Hagara | Komentářů: 1
    16.12. 14:22 | Nová verze

    Byla vydána nová verze 1.6 otevřeného, licenčními poplatky nezatíženého, univerzálního ztrátového formátu komprese zvuku Opus (Wikipedie) a jeho referenční implementace libopus. Podrobnosti na demo stránce.

    Ladislav Hagara | Komentářů: 3
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (48%)
     (20%)
     (17%)
     (23%)
     (15%)
     (24%)
     (16%)
     (18%)
    Celkem 480 hlasů
     Komentářů: 19, poslední 11.12. 20:04
    Rozcestník

    Dotaz: python - defaultni hodnoty parametru u konstruktoru

    8.3.2009 10:04 Petr
    python - defaultni hodnoty parametru u konstruktoru
    Přečteno: 299×

    Ahoj,

    Mam problem s pythonem, vytvoril jsem si par trid a napsal program, ktery ve vysledku funguje nejak divne. Nakonec jsem zjistil, ze kdyz vytvarim instanci nejake tridy, ktera ma v konstruktoru defaultni hodnotu, tak pri vytvoreni druhe instance stejne tridy se mi do defaultniho parametru vnuti hodnota z predchozi instance. Nevite jak to resit, aby to nedelal ? (docla mne s tim otravuje programovani)

    Priklad:

    <pre>

    >>> class A:
    ...     def __init__(self, seznam = []):
    ...             self.seznam = seznam
    ...             print seznam
    ...             print self.seznam
    ...     def append(self, item):
    ...             self.seznam.append(item)
    ...
    >>> a = A()
    []
    []
    >>> a.append('ahoj')
    >>> b = A()
    ['ahoj']              # Tady by se podle mne melo zobrazit: []
    ['ahoj']              # Tady taktez, jako pri vytvareni instance "a", ale vnuti se tam neco ineho :o(
    >>>
    </pre>

     

    Dik za kazdy tip

    Odpovědi

    8.3.2009 11:02 razor | skóre: 33
    Rozbalit Rozbalit vše Re: python - defaultni hodnoty parametru u konstruktoru

    No to je v případě, že deaultní hodnota není imutable. Stím jsem si taky užil své :) 

     

    ... Default parameter values are evaluated when the function definition is executed. This means that the expression is evaluated once, when the function is defined, and that that same “pre-computed” value is used for each call. This is especially important to understand when a default parameter is a mutable object, such as a list or a dictionary: if the function modifies the object (e.g. by appending an item to a list), the default value is in effect modified. This is generally not what was intended. A way around this is to use None as the default, and explicitly test for it in the body of the function, e.g.: 

    def whats_on_the_telly(penguin=None):
        if penguin is None:
            penguin = []
        penguin.append("property of the zoo")
        return penguin
    
    
    8.3.2009 12:05 Petr
    Rozbalit Rozbalit vše Re: python - defaultni hodnoty parametru u konstruktoru

    Diky za vysvetleni.

    Zkousel jsem i defaultni parametr s None, ale taky mi to nechtelo fungovat...

    Az pri precteni tohoto vytahu z clanku mi doslo, ze pouzivam tridy vznikle dedenim ze zakladni - pricemz v zakladni (rodicovske) jsem to opravil ale v potomcich jsem nechal puvodni zapis.

    8.3.2009 11:15 mich | skóre: 16
    Rozbalit Rozbalit vše Re: python - defaultni hodnoty parametru u konstruktoru
    To je správné chování. Ale můžete místo
    self.seznam = seznam
    
    dát
    self.seznam = seznam[:]
    
    když seznam zkopírujete, bude mít každá instance svůj - samozřejmě pokud chcete jen nastavit prázdný seznam, bude lepší to udělat v těle té metody a nepoužívat k tomu defaultní hodnotu.
    je to teď v módě, na žive o tom furt píšou
    8.3.2009 12:08 Petr
    Rozbalit Rozbalit vše Re: python - defaultni hodnoty parametru u konstruktoru

    Diky za tip

    Duvod proc tam mam defaultni hodnotu parametru, je kvuli komplexnosti pouziti - aby slo data v urcitych pripadech (ve kterych je to vyhodnejsi) vkladat pri vytvareni instance...

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.