ebook img

Re-learning Python - Alex Martelli PDF

51 Pages·2004·0.22 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Re-learning Python - Alex Martelli

business collaboration people Re-learning Python • Alex Martelli STRAKT © 2004 AB STRAKT 1 This talk & its audience you know, or used to know, s/thing about  Python 1.5.2 (or other Python < 2.2) you're experienced programmers in some  other language[s] (I'm covering in 1h about 2 days' worth of "normal" tutorials) you'd like to understand whether it's  worth your while to re-learn Python today, and what are the highlights STRAKT © 2004 AB STRAKT 2 Python’s Progress Ver. released new for (months) 1.5.2 1999/04 17 stable 2.0 2000/09 07 s/what stable 2.1 2001/04 08 s/what stable 2.2 2001/12 19 stable 2.3 2003/07 (15?) very stable (2.4 2004/10?) STRAKT © 2004 AB STRAKT 3 Five years’ worth of goodies Unicode and codecs  list comprehensions  iterators and generators  new classes, metaclasses, descriptors  nested scopes  ...“and a cast of thousands”...  + lots of library additions/enhancements  STRAKT © 2004 AB STRAKT 4 Python Versions’ Stability revolutions 1.5.2→2.0→2.1→2.2  stability 2.2→2.3  • only very minor language changes • overall, ~3 years’ worth of stable experience • focus on implementation speed, size, solidity • (library does keep growing & getting better) ...net result...:  Never been readier for prime time! STRAKT © 2004 AB STRAKT 5 Unicode and codecs unicode strings vs plain byte strings  • methods make them polymorphic encode/decode for string transforms  (including to/from Unicode/plain) print 'ciao'.decode('rot13') pnvb STRAKT © 2004 AB STRAKT 6 List comprehensions L = [ x*x for x in LL if x>0 ] {x*x | x(cid:15464)L, x>0} -- like, in set theory is just like...: , L = [] for x in LL: if x>0: L.append(x*x) pluses: 1 thought → 1 compact idiom it's an expression... STRAKT © 2004 AB STRAKT 7 Iterators: in 1.5.2 ... To allow looping with a for, one had to sort-of-emulate a sequence...: class iterable: def __getitem__(self, i): if self.done(): raise IndexError return self.next() + safeguards vs random-access, restart... STRAKT © 2004 AB STRAKT 8 Iterators: since 2.2 ... A class is iterable if it has a special method __iter__ returning an iterator object: class iterable: def __iter__(self): return my_iter(self) Each instance of the iterator class keeps track of one iteration's state, returns self from __iter__, has a method next STRAKT © 2004 AB STRAKT 9 Iterators: an iterator class class myiter: def __init__(self, ...):... def __iter__(self):return self def next(self): [[...advance one step...]] if [[it's finished]]: raise StopIteration return [[the next value]] STRAKT © 2004 AB STRAKT 10

Description:
2004 AB STRAKT. STRAKT. 2. This talk & its audience. ▫ you know, or used to know, s/thing about. Python 1.5.2 (or other Python < 2.2). ▫ you're experienced
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.