Tudi Python je lahko grd!

Post on 23-Jan-2015

350 views 3 download

description

 

Transcript of Tudi Python je lahko grd!

Tudi Python je lahko grd!

Simon Belaksimon@hruska.si

Slo-Tech NEST.2006

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