25
Tudi Python je lahko grd! Simon Belak [email protected] Slo-Tech NEST.2006

Tudi Python je lahko grd!

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Tudi Python je lahko grd!

Tudi Python je lahko grd!

Simon [email protected]

Slo-Tech NEST.2006

Page 2: Tudi Python je lahko grd!

Tudi Python je lahko grd! 2

Cilji

• Spoznati delovanje Pythona

• Premostiti nekatere njega omejitve

• Izkoristiti izrazno moč do kraja

• Razumeti grdo kodo

Page 3: Tudi Python je lahko grd!

TinyP2P

Peer-to-peer program v 15 vrsticah

Page 4: Tudi Python je lahko grd!

Tudi Python je lahko grd! 4

TinyP2P v vsej svoji lepoti

Page 5: Tudi Python je lahko grd!

Tudi Python je lahko grd! 5

Vrstica 1

• Več knjižnic v istem izrazu

• Kombiniranje z as

Page 6: Tudi Python je lahko grd!

Tudi Python je lahko grd! 6

Vrstica 2

• Razpiranje tuplov

• Več dodeljevanj hkrati

• Najprej se ovrednoti desna stran

Page 7: Tudi Python je lahko grd!

Tudi Python je lahko grd! 7

Vrstica 3

• Manj kot je imenskih prostorov, hitreje je

Page 8: Tudi Python je lahko grd!

Tudi Python je lahko grd! 8

Vrstica 4

• Leksialen zor

• Ovijanje funkcij

Page 9: Tudi Python je lahko grd!

Tudi Python je lahko grd! 9

Vrstica 5

Page 10: Tudi Python je lahko grd!

Tudi Python je lahko grd! 10

Vrstica 6

• Rezine– Interval– Do konca– Od začetka– S korakom– Negativni indeksi

Page 11: Tudi Python je lahko grd!

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

Page 12: Tudi Python je lahko grd!

Tudi Python je lahko grd! 12

Vrstica 8

• S tuplom lahko premostimo omejitev lambda funkcij (vsaka celica je svoj izraz)

Page 13: Tudi Python je lahko grd!

Tudi Python je lahko grd! 13

Vrstica 9

• Stroga tipizacija• if kot izraz

Page 14: Tudi Python je lahko grd!

Tudi Python je lahko grd! 14

Vrstica 10

Page 15: Tudi Python je lahko grd!

Tudi Python je lahko grd! 15

Vrstica 11

Page 16: Tudi Python je lahko grd!

Tudi Python je lahko grd! 16

Vrstica 12

• lambda - nadzorovanje vrstnega reda in števila vrednotenj

Page 17: Tudi Python je lahko grd!

Tudi Python je lahko grd! 17

Vrstica 13

Page 18: Tudi Python je lahko grd!

Tudi Python je lahko grd! 18

Vrstica 14

Page 19: Tudi Python je lahko grd!

Tudi Python je lahko grd! 19

Vrstica 15

Page 20: Tudi Python je lahko grd!

Sklepi

Page 21: Tudi Python je lahko grd!

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

Page 22: Tudi Python je lahko grd!

Tudi Python je lahko grd! 22

Preseganje omejitev

• Več izrazov znotraj ene lambda funkcije

Page 23: Tudi Python je lahko grd!

Tudi Python je lahko grd! 23

Elegantni prijemi

• Tansformacije seznamov

• Rezine seznamov

• Več dodeljevanj hkrati

• Ovijanje funkcij

Page 24: Tudi Python je lahko grd!

Vprašanja?

Page 25: Tudi Python je lahko grd!

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