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:33 | Bezpečnostní upozornění

    Byly publikovány informace o další zranitelnosti v procesorech. Nejnovější zranitelnost byla pojmenována VMScape (CVE-2025-40300, GitHub) a v upstream Linuxech je již opravena. Jedná se o variantu Spectre. KVM host může číst data z uživatelského prostoru hypervizoru, např. QEMU.

    Ladislav Hagara | Komentářů: 0
    včera 22:00 | Komunita

    V červenci loňského roku organizace Apache Software Foundation (ASF) oznámila, že se částečně přestane dopouštět kulturní apropriace a změní své logo. Dnes bylo nové logo představeno. "Indiánské pírko" bylo nahrazeno dubovým listem a text Apache Software Foundation zkratkou ASF. Slovo Apache se bude "zatím" dál používat. Oficiální název organizace zůstává Apache Software Foundation, stejně jako názvy projektů, například Apache HTTP Server.

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

    Byla vydána (𝕏) srpnová aktualizace aneb nová verze 1.104 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.104 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

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

    Spotify spustilo přehrávání v bezztrátové kvalitě. V předplatném Spotify Premium.

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

    Spoluzakladatel a předseda správní rady americké softwarové společnosti Oracle Larry Ellison vystřídal spoluzakladatele automobilky Tesla a dalších firem Elona Muska na postu nejbohatšího člověka světa. Hodnota Ellisonova majetku díky dnešnímu prudkému posílení ceny akcií Oraclu odpoledne vykazovala nárůst o více než 100 miliard dolarů a dosáhla 393 miliard USD (zhruba 8,2 bilionu Kč). Hodnota Muskova majetku činila zhruba 385 miliard dolarů.

    Ladislav Hagara | Komentářů: 1
    10.9. 21:22 | Nová verze

    Bylo vydáno Eclipse IDE 2025-09 aneb Eclipse 4.37. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    10.9. 18:22 | IT novinky

    T-Mobile od 15. září zpřístupňuje RCS (Rich Communication Services) zprávy i pro iPhone.

    Ladislav Hagara | Komentářů: 3
    10.9. 13:22 | IT novinky

    Společnost ARM představila platformu Arm Lumex s Arm C1 CPU Cluster a Arm Mali G1-Ultra GPU pro vlajkové chytré telefony a počítače nové generace.

    Ladislav Hagara | Komentářů: 0
    10.9. 05:44 | Nová verze

    Unicode Consortium, nezisková organizace koordinující rozvoj standardu Unicode, oznámila vydání Unicode 17.0. Přidáno bylo 4 803 nových znaků. Celkově jich je 159 801. Přibylo 7 nových Emoji.

    Ladislav Hagara | Komentářů: 0
    9.9. 21:00 | IT novinky Ladislav Hagara | Komentářů: 17
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (83%)
     (7%)
     (2%)
     (2%)
     (4%)
     (2%)
    Celkem 164 hlasů
     Komentářů: 12, poslední 10.9. 13:00
    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á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.