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í
×
29.8. 14:01 | IT novinky
28.8.2014 oficiálně zemřel ve věku 58 let Hal Finney na následky ALS. Jeho tělo bylo po smrti předáno společnosti Alcor Life Extension Foundation, která se zabývá kryonikou. … více »
Bystroushaak | Komentářů: 127
27.8. 11:36 | Pozvánky
LinuxDays, konference, která se bude konat 4. a 5. 10. 2014 v Praze v Dejvicích, zveřejnila návrh programu (stále probíhá call for papers). Mezi již přihlášenými jsou přednášky z oblastí síťování, vývoje softwaru a dalších.
Jendа | Komentářů: 3
27.8. 09:26 | Nová verze
Vyšel GIMP 2.8.14. Jedná se o opravné vydání. Řešena je řada chyb, vylepšená je dokumentace a překlady. Novinkou je, že ve výchozím stavu přijímá script-fu-server požadavky pouze z 127.0.0.1 (bezpečnostní problém CVE-2012-4245, commit). Verze 2.8.14 vyšla záhy po verzi 2.8.12. Řešen byl problém s verzemi knihoven (commit).
Ladislav Hagara | Komentářů: 0
26.8. 09:08 | Nasazení Linuxu
Na serveru computerworld.com se objevil článek o novém pokusu nahradit v Číně windows vlastní linuxovou distribucí Red Flag. Čínský výrobce počítačů "Penta Wan Jing Information Technology Industry Group" koupil aktiva spojená s Red Flag v přepočtu za cca 132 miliónů korun. Systém by rádi uvedli na trh do října.
ZAH | Komentářů: 15
26.8. 08:48 | Nová verze
Byl vydán PoorWSGI v první oficiální stable verzi 1.0.0. PoorWSGI je malý WSGI middleware, který ale poskytuje dostatečnou funkčnost pro tvorbu webových stránek v pythonu. Více informací je dostupných na stránkách projektu. Zdrojové kódy je možné stáhnout z git repositáře nebo pypi stránek, ze kterých je také možné rovnou instalovat Python balíček pomocí pip.
McBig | Komentářů: 0
26.8. 08:44 | Pozvánky

V rámci další akce GXG Jičín vám ukážeme jak snadno můžete nahradit váš operační systém (Windows, Mac OS X...) pomocí Linuxu. Možná ho už dnes používáte a ani o tom nevíte. Zajímá vás co je Linux, proč ho využívá i Google a jaké má výhody? Martin Vancl vám ho představí a i spoustu dalších programů, které jsou zdarma! Ukáže vám, jak můžete ušetřit náklady za licence a zároveň zvýšit bezpečnost vašeho počítače. Dozvíte se, kde všude můžete Linux

… více »
Gug.cz | Komentářů: 4
26.8. 07:56 | Zajímavý projekt
Na blogu projektu sandstorm.io byla zveřejněna zpráva o portaci Apache Wave (nástupce zaniklého Google Wave). Po Etherpadu a Ethercalcu jde již o několikátou kolaborativní webovou aplikaci podporovanou touto platformou. Cílem sandstorm.io je umožnit snadno a přitom bezpečně provozovat vlastní kolekci webových aplikací na vlastním hardware (či VPS), k čemuž využívá techniku sandboxingu. … více »
fedy | Komentářů: 0
25.8. 21:37 | Zajímavý projekt
Na stránkách hry Robocraft vyšlo oznámení o začátku testování portů alfaverze hry na Linuxu a OS X. Oficiální trailer je vhodné shlédnout raději až po samotném vydání portu hry pro váš oblíbený systém…
2X4B-523P | Komentářů: 4
25.8. 13:40 | Zajímavý projekt
Server Libre Graphics World informuje o spuštění projektu Libre Music Production. Jeho cílem je pomocí srozumitelných návodů vyplnit mezeru mezi zkušenými hudebními producenty a nováčky, kteří by rádi pro svoji tvorbu využili svobodný software. Má jít o server "od hudebníků pro hudebníky", čemuž odpovídají i jména za projektem stojící, kam patří mimo jiné tvůrce audio kitu JACK, Paul Davis, nebo Gabriel Nordeborn, jenž s pomocí svobodného softwaru vydal již několik alb.
xkomczax | Komentářů: 1
25.8. 02:00 | Komunita
Konference DebConf14 (Debian Conference 2014) probíhá od 23. do 31. srpna v Portlandu. Konferenci je možné sledovat online (program).
Ladislav Hagara | Komentářů: 0
Hlasuji z:
 (85%)
 (11%)
 (2%)
 (1%)
 (0%)
 (0%)
Celkem 3033 hlasů
 Komentářů: 42, poslední 25.8. 11:10
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: 1057× | 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: 42 | 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-2013 Argonit s. r. o. Všechna práva vyhrazena.