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í
×
včera 22:39 | IT novinky

Společnost Google před nedávnem oznámila, že z bezpečnostních důvodů omezí možnost stahování projektů ze služby Google Code. Projekty, které zatím nenabídly nic ke stažení, a zároveň všechny nové projekty, nebudou mít možnost nabídnout uživatelům stahování aplikací. Stávající projekty, které už něco nabídly, tuto funkci ztratí až v roce 2014.

… více »
ScheRas | Komentářů: 3
včera 22:39 | Nová verze
V repozitáři na google code se nachází nová verze QtFM - 5.9. QtFM je odlehčený správce souborů, který má závislost pouze na knihovně Qt. Pro uživatele Archlinuxu je program k dispozici v AURu (balík qtfm-svn). … více »
microcz | Komentářů: 0
včera 17:25 | Nová verze
Vyšly nové binární ovladače NVIDIA 319.23. Nová verze přináší podporu grafické karty GeForce GTX 780 a především podporu rozlišení 4K (GPU Kepler a lepší, HDMI). Rozlišení 4K je podporováno také knihovnou VDPAU (Video Decode and Presentation API for Unix). Řešeny jsou mimo jiné také problémy v nvidia-settings.
Ladislav Hagara | Komentářů: 2
včera 13:21 | Nová verze

Vyšla veřejná beta verze hudebního software Tracktion. Jedná se o první verzi, která kromě Windows a MacOSX podporuje i Linux. Po registraci můžete stahovat ze stránek projektu.

… více »
balda | Komentářů: 1
včera 11:44 | Nová verze
KDE Plasma Workspaces 4.11, které má vyjít 14. srpna, se stane posledním vydáním před KDE 5 a bude mít podporu 2 roky. Zmrazení se týká jen KDE Plasma Workspaces. KDE Applications budou nadále přijímat nové funkce a vydávat nové verze (4.12, 4.13 a dál). Vývojáři se poučili z přechodu na KDE 4, a proto platforma pro vývoj KDE aplikací Frameworks 5 bude nezávislá na vývoji Plasma Workspaces 2. Vývojáři aplikací tak budou moci portovat aplikace na … více »
Martix. | Komentářů: 5
23.5. 00:33 | Nová verze
Sedmadvacítková řada webového prohlížeče Google Chrome byla prohlášena za stabilní. Nová stabilní řada přináší API chrome.syncFileSystem pro ukládání a synchronizaci dat na Google Drive. Načítání stránek se zrychlilo o 5 %. Vylepšen byl adresní řádek (omnibox). Dle oznámení bylo ve verzi 27.0.1453.93 opraveno 14 bezpečnostních chyb (CVE-2013-2836 až CVE-2013-2849). Nálezcům chyb bylo vyplaceno celkově 14633,7 USD.
Ladislav Hagara | Komentářů: 38
22.5. 13:49 | Komunita

Moře se ustálilo a strategie implementující upravenou verzi hry "Lodě" vystřelily poslední projektil. Celkem se účastnilo 26 týmů, které odevzdaly 24599 řádků kódu v C/C++, Javě, Pythonu, Delphi a Haskellu (Linusův kernel ve verzi 0.01 měl 8413 řádků :-)).

… více »
jhutar | Komentářů: 31
22.5. 09:21 | Nová verze
Vyšel Skype 4.2. Žádnou revoluci ale nečekejte - jde hlavně o opravy chyb a drobnosti. Mimo jiné o zlepšení stability při přihlašování s účtem od Microsoftu.
Luboš Doležel (Doli) | Komentářů: 20
22.5. 09:17 | Nová verze
Nová verze QEMU 1.5 podporuje KVM na procesorech Cortex A15 (ARM), má nové GUI v GTK+ a experimentálně umí přes VFIO připojit grafickou kartu do virtualizovaného systému.
Luboš Doležel (Doli) | Komentářů: 0
22.5. 09:13 | Nová verze
Vyšlo SQLite 3.7.17. Na této verzi stojí za pozornost podpora mapování databází do paměti (což zvyšuje výkon) nebo vylepšení mechanismu pro načítání rozšíření.
Luboš Doležel (Doli) | Komentářů: 2
Během psaní na klávesnici se dívám na
 (68%)
 (14%)
 (19%)
Celkem 2614 hlasů
 Komentářů: 77, poslední včera 21:16
Rozcestník
Reklama
Autoškola testy online Levný benzín

Mám python ještě radši než dřív.

30.5.2008 17:58 | Přečteno: 916× | poslední úprava: 30.5.2008 18:04

Dalsí kousek pythoního kódu, na který jsem pyšný.

Nejsem pyšný na sebe, nejde o nic složitého ani objevného. Jsem pyšný na python, protože jsem zase jednou zjistil že jsem neudělal chybu, když jsem se vybodnul na Javu.

O co jde ? Potřebuji předem neznámou datovou strukturu serializovat do ekvivalentního pythoního kódu. Není to žádná raketová věda, ale čekal jsem spoustu otravování s tím, aby byl výsledek syntakticky košer, aby to pobralo vnořené struktury, aby se to dalo snadno rozšiřovat o nové datové typy. Když jsem se konečně přinutil přestat "psát Céčko v pythonu" a začal "přemýšlet v pythonu", vyplynulo to samo, s jednoduchostí a samozřejmostí, která mi ještě ted bere dech.

# convert data to code
import types

data2code = {
    types.DictType: lambda x: "{" + ", ".join(["%s: %s" % (textualize(k), textualize(v)) for k,v in x.items()]) + "}",
    types.TupleType: lambda x: "(" + ("".join([ textualize(i)+", " for i in x ])) + ")",
    types.ListType: lambda x: "[" + (", ".join([ textualize(i) for i in x ])) + "]",
    types.StringType: lambda x: '"%s"' % x,
    types.UnicodeType: lambda x: '"%s"' % x,
    types.IntType: lambda x: str(x),
    types.BooleanType: lambda x: str(x),
    types.NoneType: lambda x: "None",
}

# shorthand for converting of given val
def textualize(val):
    return data2code[type(val)](val)
       

Hodnocení: 100 %

        špatnédobré        

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

Komentáře

Vložit další komentář

30.5.2008 18:51 spang
Rozbalit Rozbalit vše Re: Mám python ještě radši než dřív.
Ehhh, znáš funkci repr() ?
repr(object)

Return a string containing a printable representation of an object. This is the same value yielded by conversions (reverse quotes). It is sometimes useful to be able to access this operation as an ordinary function. For many types, this function makes an attempt to return a string that would yield an object with the same value when passed to eval().

rADOn avatar 30.5.2008 19:08 rADOn | skóre: 39 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Mám python ještě radši než dřív.
Znám, bohužel háček je v tom For many types. Součástí jsou i nestandartní data, jmenovitě xmlrpc/fastrpc typy a ty mají s implementací __repr__() vážný problém. Z kódu který jsem postnul jsem je pro jednoduchost vynechal.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
Nikola Ciprich avatar 30.5.2008 19:45 Nikola Ciprich | skóre: 22 | blog: NiX_blog | Bohumín
Rozbalit Rozbalit vše Re: Mám python ještě radši než dřív.
ty lambdy jsou tam trosku zbytecne, co takhle:

types.BooleanType: str

;)
Did you ever touch the starlight ? Dream for a thousand years? Have you ever seen the beauty Of a newborn century?
30.5.2008 23:38 CEST
Rozbalit Rozbalit vše Re: Mám python ještě radši než dřív.
Chapu to dobre, ze tahle funkce dela to same jako v perlu Data::Dumper nebo v PHP serialize? BTW: mas u toho retezce osetreny, kdyz bude obsahovat uvozovky?
1.6.2008 17:21 vlasta neubauer
Rozbalit Rozbalit vše Re: Mám python ještě radši než dřív.
nevím co dělá Perlovský Data::Dumper, ale v PHP jde s píše o ekvivalent funkce var_export(). serializace je trošku něco jiného. tady jde o konverzi na validní kód, ne o konverzi na 'prostý' text.

Založit nové vláknoNahoru

ISSN 1214-1267   Powered by Hosting 90 Server hosting
© 1999-2012 Argonit s. r. o. Všechna práva vyhrazena.