Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
hanpari
Tvůrce
Avatar
hanpari:29.3.2015 10:05

Ahoj všichni,

vzhledem k tomu, že jsem se často setkal s výhradami ve smyslu, že kód není dostatečně pythonský, a vzhledem k tomu, že někdy mám dojem, že si to každý vykládá po svém, rád bych věděl, co si místní uživatelé představují pod tímto pojmem.

Jen bych poprosil o vlastní názory a dojmy. Zajímala by mne vaše osobní pojetí pojmu "pythonic". Oficiální definici bych si určitě našel sám :)

 
Odpovědět
29.3.2015 10:05
Avatar
Odpovídá na hanpari
Neaktivní uživatel:30.3.2015 15:15
Jako Python-like si představuju (ale neříkám, že to vždy používám)
Pochopení seznamu (list comprehension): [function(x) * x for x in numberList if x % 2 == 0]
Formátování řetězce operátorem: print("%s %s!" % (msg, target))
Zjištění přítomnosti podstringu (substring): if "blah" in string nebo if "blah" not in string
Paralelní přiřazování: a, b, c = b, c, a
Více-return: return val1, val2, val3, ..., valX
Generátory (narozdíl od comprehension se generuje dynamicky): (z for z in x for x in y)
Lambda funkce (které už nejsou tolik Python-like, skvěle se dají použít u dole zmíněných funkcí): lambda x: x*x
Další vlastnosti co jsou spíš funkcionální, které se dají nahradit pomocí list comprehension
filter(): filter(my_fun­ction_filter, myList)
map(): map(my_function, myList)
zip(): zip(['a', 'b', 'c'], [1, 2, 3])
Editováno 30.3.2015 15:18
Nahoru Odpovědět
30.3.2015 15:15
Neaktivní uživatelský účet
Avatar
hanpari
Tvůrce
Avatar
hanpari:30.3.2015 16:45

Díky moc!

Pěkný seznam, za sebe vlastně nemám co doplnit. Snad kromě drobností jako

if neco: místo if neco != 0:

nebo, když už jsme u toho rozbalování,

a, *zbytek = [1,2,3,4,5,6]

Jedině snad, co mi tam chybí, je vhodné využití vestavěných datových struktur. Jako jsou list, tuple, dict a tolik bůhvíproč přehlížený set, popř. frozenset.
A také využívání modulů jako itertools a obecně baterií.
Z těch pokročilejších snad ještě closures, deskriptory a dekoratéry.

Ale rozhodně se přidejte další, je to takové odpočinkové téma :)

Editováno 30.3.2015 16:47
 
Nahoru Odpovědět
30.3.2015 16:45
Avatar
Odpovídá na hanpari
Neaktivní uživatel:31.3.2015 14:31

Dekorátory v Pythonu jsou, ale jelikož jsem se o ně moc nezajímal, nevím, zda to jsou ty, co hledáš.

Nahoru Odpovědět
31.3.2015 14:31
Neaktivní uživatelský účet
Avatar
hanpari
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
hanpari:31.3.2015 15:40

Jo, přesně ty, akorát je nehledám, jen doplňuji k tvému seznamu :)

 
Nahoru Odpovědět
31.3.2015 15:40
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.