Dick Moores wrote: > At http://wiki.python.org/moin/SimplePrograms I found this code: > > ============================================ > import itertools > > def iter_primes(): > # an iterator of all numbers between 2 and +infinity > numbers = itertools.count(2) > > # generate primes forever > while True: > # get the first number from the iterator (always a prime) > prime = numbers.next() > yield prime > > # this code iteratively builds up a chain of > # filters...slightly tricky, but ponder it a bit > numbers = itertools.ifilter(prime.__rmod__, numbers) > > for p in iter_primes(): > if p > 1000: > break > print p > ==================================================== > > It works for me in Win XP, Python 2.5. > > However, in trying to dig into the code to understand it, I'm not able > to find itertools.py, even though itertools is found in the docs at < > http://www.python.org/doc/2.4/lib/module-itertools.html>. > A search of my Python25 directory doesn't turn up an itertools.py. > > So my question is, how does the first line of the code work? /Where /is > itertools?
You can find out where any module is located using its __file__ attribute. This works for modules written in C, too. On my (Mac OSX) computer: In [2]: itertools.__file__ Out[2]: '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/itertools.so' Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor