Upload
simon-belak
View
344
Download
3
Embed Size (px)
DESCRIPTION
Citation preview
Tudi Python je lahko grd! 2
Cilji
• Spoznati delovanje Pythona
• Premostiti nekatere njega omejitve
• Izkoristiti izrazno moč do kraja
• Razumeti grdo kodo
TinyP2P
Peer-to-peer program v 15 vrsticah
Tudi Python je lahko grd! 4
TinyP2P v vsej svoji lepoti
Tudi Python je lahko grd! 5
Vrstica 1
• Več knjižnic v istem izrazu
• Kombiniranje z as
Tudi Python je lahko grd! 6
Vrstica 2
• Razpiranje tuplov
• Več dodeljevanj hkrati
• Najprej se ovrednoti desna stran
Tudi Python je lahko grd! 7
Vrstica 3
• Manj kot je imenskih prostorov, hitreje je
Tudi Python je lahko grd! 8
Vrstica 4
• Leksialen zor
• Ovijanje funkcij
Tudi Python je lahko grd! 9
Vrstica 5
Tudi Python je lahko grd! 10
Vrstica 6
• Rezine– Interval– Do konca– Od začetka– S korakom– Negativni indeksi
Tudi Python je lahko grd! 11
Vrstica 7
• Tansformacije seznamov
• Leno vrednotenje logičnih izrazov
• Dogovor: destruktivne metode vračajo None
• Privzeti argumenti se ovrednotijo samo in le ob definiciji
Tudi Python je lahko grd! 12
Vrstica 8
• S tuplom lahko premostimo omejitev lambda funkcij (vsaka celica je svoj izraz)
Tudi Python je lahko grd! 13
Vrstica 9
• Stroga tipizacija• if kot izraz
Tudi Python je lahko grd! 14
Vrstica 10
Tudi Python je lahko grd! 15
Vrstica 11
Tudi Python je lahko grd! 16
Vrstica 12
• lambda - nadzorovanje vrstnega reda in števila vrednotenj
Tudi Python je lahko grd! 17
Vrstica 13
Tudi Python je lahko grd! 18
Vrstica 14
Tudi Python je lahko grd! 19
Vrstica 15
Sklepi
Tudi Python je lahko grd! 21
Delovanje Pythona
• Leksialni zor
• Leno vrednotenje logičnih izrazov
• Stroga tipizacija
• Privzeti argumenti se ovrednotijo samo in le ob definiciji
Tudi Python je lahko grd! 22
Preseganje omejitev
• Več izrazov znotraj ene lambda funkcije
Tudi Python je lahko grd! 23
Elegantni prijemi
• Tansformacije seznamov
• Rezine seznamov
• Več dodeljevanj hkrati
• Ovijanje funkcij
Vprašanja?
Tudi Python je lahko grd! 25
Viri• http://www.exonsoft.com/~kochin/TinyP2P/tinyp2p.html• http://www.freedom-to-tinker.com/tinyp2p.html• http://docs.python.org/lib/lib.html• http://docs.python.org/ref/ref.html