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 04:44 | Pozvánky

    O víkendu probíhá na FIT VUT v Brně konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma. Přednášky lze sledovat i online na VHSky a YouTube.

    Ladislav Hagara | Komentářů: 0
    dnes 02:11 | IT novinky

    Qualcomm uzavřel víceletou dohodu se SpaceX. Bude dodávat rádiové technologie, baseband jednotky a software pro plánovanou pozemní 5G síť Starlink Mobile. Výstavba má zahrnovat desítky tisíc základnových stanic v USA. Zahájení nasazování se očekává v roce 2027. Qualcomm dohodu označuje za svůj dosud největší 5G kontrakt.

    vencour | Komentářů: 0
    dnes 02:00 | IT novinky

    Google rozšířil Cloud Vulnerability Reward Program. Nově nabízí odměnu až 250 tisíc dolarů za vysoce závažné architektonické bezpečnostní chyby označované jako Root-in-Cloud.

    vencour | Komentářů: 0
    včera 12:22 | IT novinky

    V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.

    Ladislav Hagara | Komentářů: 3
    včera 03:22 | Nová verze

    Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    5.11. 19:53 | Bezpečnostní upozornění
    V Xenu objevena zranitelnost. Chyba v mechanismu grant copy umožňuje škodlivému virtuálnímu stroji číst a přepisovat libovolnou paměť jiných VM včetně privilegované domény Dom0. Dotčené verze jsou Xen 4.6 a novější. V upstreamu jsou dostupné patche pro Xen 4.17 až 4.19 a vývojovou větev. Pro starší nepodporované verze 4.6–4.16 nejsou v XSA-523 přiloženy opravy.
    vencour | Komentářů: 1
    5.11. 16:55 | Nová verze

    Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).

    ʚĭɞ 🍉 | Komentářů: 0
    5.11. 12:22 | Nová verze

    Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    5.11. 12:11 | Nová verze

    Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2993 hlasů
     Komentářů: 35, poslední včera 23:27
    Rozcestník
    Štítky: není přiřazen žádný štítek


    Vložit další komentář
    1.5.2009 00:07 Honza Kral
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone

    stringy jsou immutable, kazdym prirazenim vytvaris novou instanci, zatimco list je objekt, kde jen modifikujes vnitrni stav

    1.5.2009 00:10 Honza Král | skóre: 3 | Praha
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone

    jinak ani u foo by nefungovalo

    self.foo = ['novy', 'list']

    kdyz prirazujes na objekt, priradi se to na objekt, a prekryje to tedy ten atribut na tride.

    Milan Lajtoš avatar 1.5.2009 00:49 Milan Lajtoš | skóre: 22 | blog: /blog/babraq
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    Uuuf, ďakujem. Na mutable/immutable som vôbec nepomyslel.

    Ale statické foo by sa dalo vytiahnuť cez class1.foo, aj keď by bolo prekryté atribútom na objekte. Eh, pristupovanie k statickým premenným cez inštanciu by sa malo zakázať! ;)
    “Every great achievement was once considered impossible.”
    1.5.2009 09:54 CEST
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    stringy jsou immutable, ..., zatimco list je objekt,
    A pak me presvedcujte o tom, ze Python (a dalsi podobne jazyky ala Java, C++, vcetne meho oblibeneho Perlu) jsou objektove orientovane jazyky. Smalltalk na vas.

    Pricemz me opravdu vytaci, kdyz vidim u lakadla na jazyk Python neco ve smyslu "objektově-orientovaný programovací jazyk" (viz. www.py.cz), a pak to nadherne popiraji pouzivanim prikazu (if, for, while...) nebo pouzivanim prasaren jako
    re.search("c", "abcdef")
    Z toho se zacatecnik akorat nauci, ze ma delat vlastni tridu, kterou bude jenom zastresovat nejaky vetsi akce, pak vytvori jenom jeden objekt tehle tridy a tam bude volat tyhle svoje metody vzdy s parametrama, misto aby vytvoril vlastni tridu, kterou vytvori rozsirenim nejaky originalni tridy a do ty pak prida vlastni metody a ty bude pak volat na ten konkretni objekt, napr. ten regular vyse by mel byt spravne
    "abcdef".search("c")
    Proste na objektu typu (ze tridy) string by mela byt metoda search s jednim parametrem udavajicim regexp, kterej se ma hledat v tom objektu string. Ono sice jde pomoci compile vytvorit objekt RegExp a na ten pak volat match jenom s parametrem stringu, ale bohuzel umoznuje i tu prvni prasarnu, takze se to tak zacatecnici nauci, protoze to odpovida klasickymu programovani (IMHO klasicky programovani je trosku pochopitelnejsi nez OOP).

    proste v tomhle me Python znechucuje a pak jeste oddelovani prikazu odsazovanim - perl, awk, sed pouzivam v cmdline. Python mi tohle nedovoli (nebo jo?), takze s nim nemuzu zacit ani na jednoduchych vecech.
    Limoto avatar 1.5.2009 10:43 Limoto | skóre: 32 | blog: Limotův blog
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone

    >>> "string".find('t')
    1

     

    Ale s regexpama už to takhle nepůjde...

    1.5.2009 11:01 jan
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone

    Perl je multiparadigmický jazyk, ne pouze oběktový. Díky tomu je implementace oběktů, bloků atd.. jako ve smalltalku triviální, zkuste si ale ve smalltalku implementovat perl ;-)

    Implementovat regexp jako obekt (a ne metodu stringu) ma take svoje vyhody - sestrojeni automatu z regexpu neni zadarmo a je dost pravdepodobne, ze jeden vyraz pouzijete vickrat nez jen jednou.

    1.5.2009 11:40 CEST
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    Perl mam rad a pouzivam ho, dokonce ho ted zacinam pouzivat misto grepu a sedu, pokud to je jednodussi, tak i awku. Objekty v perlu znam a libi se mi, ale nikdo se nesnazi presvedcovat, ze perl je skvele objektovej jazyk, zatimco u pythonu to tlaci, jak je python skvele objektovej, ze se na tom zacatecnici nauci objektove programovat. A to me stve, protoze python proste neni dobre objektovej a zaroven se michaji prikazy, funkce a metody. Smalltalk jsem uvedl, protoze jsem ho na vysokej mel a na nem je videt, co je skutecny OO jazyk.

    Nejsem proti tomu, vytvorit ze stringu (zapis regexpu) objekt a na nej pak aplikovat hledani ve stringu. Jde mi o to, ze python umoznuje prasarny typu
    string.match(RETEZEC,REGEXP)
    protoze podle me by to melo byt spravne bud
    RETEZEC.match(REGEXP)
    nebo v pripade pouziti stejnyho regularu vickrat
    REGEXPO.match(RETEZEC)
    Proste metody, ktery pracujou s konkretnim objektem, volat primo na objekt. Ne volat metodu na tridu a nacpat ji parametry, se kteryma ma pracovat - jasne, existujou tridni metody a promenne, ktere by ale mely pracovat spis jako globalne se tridou a ne s jednotlivyma instancema. Potom si zacatecnik mysli, ze objektovy programovani je jenom o tom vytvorit tridu, do ni da vlastni funkce a pak tyhle funkce volat pres tu tridu. Proste nepochopeni OOP.
    1.5.2009 14:13 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone

    Myslim, ze tohle je zrovna typicka ukazka nepochopeni OOP. Z hlediska OOP je uplne jedno jaky je kolem toho syntakticky cukr, zda se to vola jako match(RETEZEC,REGEXP), RETEZEC.match(REGEXP) nebo REGEXPO.match(RETEZEC). Dulezite je, kde je pozdni vazba a jak se dela dispatch podle typu. Napriklad v takovem CLOS by se to psalo match(RETEZEC, REGEXP) (nebo presneji receno (match RETEZEC REGEXP) ) a pritom je pozdni vazba a moznosti pretizeni a polymorfismu v obou argumentech.

    Krom toho chapat funkci match jako metodu objektu string je IMHO dost zcestne. Ta funkce nepotrebuje zadnou interni znalost stringu krom nejakeho jeho obecneho rozhrani a nema k nemu nijak blizsi vztah nez k druhemu argumentu. V takovem pripade (kdy druhy argument je take string a ne specielni objekt typu REGEXP) je IMHO vhodnejsi pohlizet na ni jako na nezavislou funkci.

    Python neznam, ale tipuji, 'string.match' je spis namespace issue, nez ze by to melo nejakou souvislost s OOP.

    1.5.2009 16:34 joe
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    "tohle je zrovna typicka ukazka nepochopeni OOP"

    Presne tak, nepochopil jste podstatu spojeni "objektove orientovany".
    3.5.2009 12:55 l4m4
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    Zjevně pochopil.

    Ostatně re.match(x,y) modulu re zašle zprávu match(x,y). Je to formálně úplně stejně OO jako zaslání zprávy match(y) řetězci x -- a úplně stejně z hlediska OO nedává velký smysl věcně. Nejde chtít jedno a odmítat druhé.
    1.5.2009 17:10 Martin Mareš
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    Proste metody, ktery pracujou s konkretnim objektem, volat primo na objekt.
    A se kterým konkrétním objektem tato metoda pracuje? :-) Já tam vidím konkrétní objekty dva a nedává mi smysl kterýkoliv z nich preferovat. Vaše "OO" je v tomto případě jen nepříliš logické syntaktické pozlátko (jak poznamenal již Santiago, objektovost spočívá v něčem poněkud jiném).
    1.5.2009 14:34 JS
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone

     A neni to jedno? Ja treba tenhle Smalltalkovsky fundamentalismus (tj. misto len(a) musi byt a.len()) moc nechapu. Na druhou stranu, chapu Lispovy fundamentalismus - tam to ma aspon duvod (makra a genericke funkce).

    1.5.2009 17:28 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    misto len(a) musi byt a.len()
    tak toto povazuju za jednu z nejvetsich demenci v pythonu... (a ze by se jich jeste par naslo) ;-]

    knihovny jsou napsane tak, ze nejde urcit jestli danou funkcionalitu nabizi ,,funkce'' nebo ,,metoda'' a pokud v tom clovek nedela dnes a denne tak to musi resit pokus omyl nebo dohledavani v dokumentaci.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    1.5.2009 17:59 JS
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone

    Hm, ja tedy ne, len(a) proste povazuji za syntakticky cukr pro volani a.__len__(), stejne jako treba a+b je syntakticky cukr pro a.__plus__(b). Nepripada mi na tom nic prilis kontroverzniho, proste len je jen jakysi dalsi operator.

    Obecne nemam rad OO fundamentalisty; trochu mi pripadaji jako lide, kteri vynalezli novy zapis a domnivaji se, ze tim spasi programatorsky svet.

    A naprosto souhlasim s Ondrejovym prispevkem.

    1.5.2009 18:13 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    ja nejsem zadny OOP fundamentalista. me jenom vadi, ze v pripade pythonu je v tom hrozny (s prominutim) bordel. a treba v pripade toho len() me prijde logictejsi to dat jako metodu objektu, protoze se pracuje pouze s jeho vlastnostmi a nic jineho neni potreba.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    1.5.2009 18:30 JS
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone

    Jen pro poradek - nikdy jsem si nemyslel, ze jste OOP fundamentalista, to byla obecna poznamka. V tomto se ovsem neshodneme - me fakt, ze knihovny Pythonu nejsou vzdy plne objektove (nebo plne neobjektove) prilis nevadi (stejne musim koukat do manualu, jak se veci jmenuji a jake maji parametry, tak uz je to pak jedno).

    1.5.2009 23:33 Michal
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone

    U Smalltalku v tomto případě nejde o žádný fungamentalismus, je to otázka syntaxe. Ve Smalltalku se objektům posílají zprávy, žádné len(a) tedy nelze napsat (tj. klasické volání funkce), jen a len, tj. objektu a posílám zprávu len.

    3.5.2009 12:36 l4m4
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    To je syntaktický detail. Neexistuje důvod, proč by se poslání zprávy len objektu a nemohlo zapsat len(a). V Pythonu je len(x) syntaktická zkratka pro x.__len__(). Protestovat proti tomu lze z hlediska zanášení jmenného prostoru, ale ne proto, že by to nebylo OO.
    1.5.2009 17:59 Kvakor
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    Pricemz me opravdu vytaci, kdyz vidim u lakadla na jazyk Python neco ve smyslu "objektově-orientovaný programovací jazyk" (viz. www.py.cz), a pak to nadherne popiraji pouzivanim prikazu (if, for, while...)
    Z toho jsem volaký zmetený. Jak se tedy mají v objektovém nefunkcionálním jazyce realizovat řídíci struktury když ne pomocí if, for a while ?
    1.5.2009 18:15 razor | skóre: 33
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone

    Např jako poslání zprávy if, for, while ... objektu Boolean. http://www.friendofthepigeon.co.uk/wordpress/?page_id=45

     

    2.5.2009 09:57 Kvakor
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    Ve Smalltalku je všechno poslání zprávy, ale i v něm vypadá if i tak dost "ifózně":
    'podmínka'
     ifTrue:[ 'kód vykonaný pokud splněno' ]
     ifFalse:[ 'kód vykonaný pokud nesplněno' ]
    
    2.5.2009 11:26 razor | skóre: 33
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone

    Všechno ne. Např. příkaz "return" :)

    3.5.2009 12:46 l4m4
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    V tom případě není dost OO :o)

    I mnohem úchylnější řídící konstrukce lze realizovat zasíláním zpráv objektu runtime prostředí (codestack, mašina, interpret, ...). Bude to úplně OO a Smalltalkisty přivede k orgasmu, ale to bude asi tak jediné praktické využití zapisování řídících konstrukcí tímto způsobem.
    1.5.2009 20:26 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    C...gobject...gtk
    Jsem mimořádně obtížný případ
    3.5.2009 14:01 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    Jsem mimořádně obtížný případ
    3.5.2009 17:05 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Statické premenné v Pythone
    A pak me presvedcujte o tom, ze Python (a dalsi podobne jazyky ala Java, C++, vcetne meho oblibeneho Perlu) jsou objektove orientovane jazyky. Smalltalk na vas.
    No ta odpověď byla zavádějící, protože v Pythonu jsou řetězce i seznamy objekty (jako prakticky všechno, co tam je). Rozdílem je, že změna immutable objektu vytvoří jeho novou instanci, kdežto změna seznamu ne.
    pouzivanim prasaren jako
    re.search("c", "abcdef")
    Z toho se zacatecnik akorat nauci, ze ma delat vlastni tridu, kterou bude jenom zastresovat nejaky vetsi akce, pak vytvori jenom jeden objekt tehle tridy a tam bude volat tyhle svoje metody vzdy s parametrama, misto aby vytvoril vlastni tridu, kterou vytvori rozsirenim nejaky originalni tridy a do ty pak prida vlastni metody a ty bude pak volat na ten konkretni objekt, napr. ten regular vyse by mel byt spravne
    "abcdef".search("c")
    Není hezké kritizovat Python, pokud o něm nic nevím ;-). To re není instance třídy, nýbrž modul, který poskytuje funkci search. Ten modul dokonce poskytuje funkce pro vytvoření pattern objektu, takže se dá napsat i tento kód
    pat = re.compile("c")
    pat.search("abcdef")
    
    Potom je pochopitelně otázka, zda nemá každá instance třídy string poskytovat i podporu pro regulární výrazy, ale Python obecně inklinuje k malým třídám a implementaci pomocí skládání, nikoli dědičnosti, takže v něm neexistují košaté rodiny různých tříd jako to má Smalltalk, Java, nebo Ruby.
    When your hammer is C++, everything begins to look like a thumb.

    Založit nové vlákno • Nahoru

    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.