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 03:11 | Komunita

    Linux Foundation zveřejnila Výroční zprávu za rok 2025 (pdf). Příjmy Linux Foundation byly 311 miliónů dolarů. Výdaje 285 miliónů dolarů. Na podporu linuxového jádra (Linux Kernel Project) šlo 8,4 miliónu dolarů. Linux Foundation podporuje téměř 1 500 open source projektů.

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

    Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.12.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    dnes 02:00 | Nová verze

    OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzi 2.4.0.

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | IT novinky

    Kriminalisté z NCTEKK společně s českými i zahraničními kolegy objasnili mimořádně rozsáhlou trestnou činnost z oblasti kybernetické kriminality. V rámci operací OCTOPUS a CONNECT ukončili činnost čtyř call center na Ukrajině. V prvním případě se jednalo o podvodné investice, v případě druhém o podvodné telefonáty, při kterých se zločinci vydávali za policisty a pod legendou napadeného bankovního účtu okrádali své oběti o vysoké finanční částky.

    Ladislav Hagara | Komentářů: 1
    včera 14:44 | IT novinky

    Na lepší pokrytí mobilním signálem a dostupnější mobilní internet se mohou těšit cestující v Pendolinech, railjetech a InterPanterech Českých drah. Konsorcium firem ČD - Telematika a.s. a Kontron Transportation s.r.o. dokončilo instalaci 5G opakovačů mobilního signálu do jednotek Pendolino a InterPanter. Tento krok navazuje na zavedení této technologie v jednotkách Railjet z letošního jara.

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

    Rozšíření webového prohlížeče Urban VPN Proxy a další rozšíření od stejného vydavatele (např. 1ClickVPN Proxy, Urban Browser Guard či Urban Ad Blocker) od července 2025 skrytě zachytávají a odesílají celé konverzace uživatelů s AI nástroji (včetně ChatGPT, Claude, Gemini, Copilot aj.), a to nezávisle na tom, zda je VPN aktivní. Sběr probíhá bez možnosti jej uživatelsky vypnout a zahrnuje plný obsah dotazů a odpovědí, metadata relací i

    … více »
    Ladislav Hagara | Komentářů: 5
    včera 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ářů: 6
    včera 04:55 | Nová verze

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

    Ladislav Hagara | Komentářů: 0
    včera 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
    17.12. 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
    Kdo vám letos nadělí dárek?
     (0%)
     (0%)
     (0%)
     (0%)
     (0%)
     (0%)
     (40%)
     (20%)
     (40%)
    Celkem 5 hlasů
     Komentářů: 6, poslední dnes 08:17
    Rozcestník

    Dotaz: Problém s metodou volanou mimo class v Pythonu

    15.8.2015 17:04 Janek
    Problém s metodou volanou mimo class v Pythonu
    Přečteno: 371×
    Ahoj, poradí prosím někdo, jak se dostane metoda 'bar' uvnitř class 'foo' volaná mimo class na proměnnou self.num ? Děkuji.
    class foo(object):
    
       def __init__(self):
          self.num = '111'
    
       def bar():
          return self.num
    
    
    obj    = foo()
    number = obj.bar()

    Řešení dotazu:


    Odpovědi

    xxxxxx avatar 15.8.2015 17:47 xxxxxx | skóre: 23
    Rozbalit Rozbalit vše Re: Problém s metodou volanou mimo class v Pythonu
    Akorát ti chybí self u té fce bar
    def bar():
    def bar(self):  # Takhle by to mělo fungovat
    
    Řešení 2× (Vojtěch Trefný, rADOn)
    15.8.2015 17:49 Ramirez
    Rozbalit Rozbalit vše Re: Problém s metodou volanou mimo class v Pythonu
    metodu bar deklaruj takto:
       def bar(self):
          return self.num
    Při zavolání metody (obj.bar()) jí Python jako 1. argument dá právě ten obj (který bude uvnitř metody vidět jako self). Btw, nemusíš tomu říkat zrovna self, je to jen konvence. Můžeš používat klidně this nebo karel, a v Pythonu 3 i třeba čeněk :-D
    Heron avatar 15.8.2015 17:50 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Problém s metodou volanou mimo class v Pythonu

    No, nedostane, protože už jen samotné volání obj.bar() neprojde (chybí argument reference na object):

    python test.py
    Traceback (most recent call last):
      File "test.py", line 11, in <module>
        number = obj.bar()
    TypeError: bar() takes no arguments (1 given)
    
    15.8.2015 20:35 Janek
    Rozbalit Rozbalit vše Re: Problém s metodou volanou mimo class v Pythonu
    Přesně, ale co s tím ?
    15.8.2015 20:55 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Problém s metodou volanou mimo class v Pythonu
    Nezbývá nic jiného, než si přečíst i zbývající dvě odpovědi.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    15.8.2015 21:43 Janek
    Rozbalit Rozbalit vše Re: Problém s metodou volanou mimo class v Pythonu
    To mi asi nepomůže, když dostanu stejnou chybu..

    TypeError: bar() takes no arguments (1 given)
    Jendа avatar 15.8.2015 23:01 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Problém s metodou volanou mimo class v Pythonu
    Mně to funguje. Python 3.4.3.
    In [1]: class foo(object):
       ...:     
       ...:        def __init__(self):
       ...:               self.num = '111'
       ...:        def bar(self):
       ...:            return self.num
       ...:        
    
    In [2]: obj    = foo()
    
    In [3]: obj
    Out[3]: <__main__.foo at 0x000000008828>
    
    In [4]: number = obj.bar()
    
    In [5]: number
    Out[5]: '111'
    
    15.8.2015 23:34 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Problém s metodou volanou mimo class v Pythonu
    Mně to normálně funguje i v Pythonu 2.7.6
    class foo(object):
    
        def __init__(self):
            self.num = '111'
    
        def bar(self):
            return self.num
    
    obj = foo()
    number = obj.bar()
    print number
    
    vypíše "111" a funguje bez chyby.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Heron avatar 16.8.2015 11:02 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Problém s metodou volanou mimo class v Pythonu
    To ti pomůže. ;-)

    Tak jak to máš napsané v dotazu, není metoda bar členem třídy foo. Pokud má být členem, je třeba doplnit jako první argument odkaz na self object. Zkrátka tak, jak ti tady bylo už několikrát porazeno.

    Nehledě na to, že každý rozumný editor pythonu by ti to poradil rovnou při psaní, nebo (pokud je úkolem to psát v plain text editoru) na to stačí poštvat pylint:
    E:  6, 4: Method has no argument (no-method-argument)
    E:  7,15: Undefined variable 'self' (undefined-variable)
    17.8.2015 15:15 Janek
    Rozbalit Rozbalit vše Re: Problém s metodou volanou mimo class v Pythonu
    Vážně nikdo neporadí? Nebo to Python neumí ? :-(
    17.8.2015 15:26 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Problém s metodou volanou mimo class v Pythonu
    Však už jsme ti poradili. Dopiš si tam to chybějící slovo self.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

    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.