Articles tagged “python”

  1. How to Rebuild a Virtualenv in Heroku

    Today I managed to get myself a little bit stuck with Heroku's otherwise seamless Python support. In an earlier revision of my app, I had used -e to install an editable version of a package (the version of the package I needed had not yet been released to PyPI, so I pointed pip at Github). Since then, the version I need has been released.

    So, update requirements.txt, then git push heroku master, and all is well, right? Not so fast...


  2. What the heck is an xrange?

    Pop quiz: how would you implement Python's xrange (known in Python 3.x as range) in Python and without making a list or any other sequence type?

    If you answered "with a generator," you'd be wrong! And it's likely because you've only ever used an xrange in code like:

    for i in xrange(10):
        # do something 10 times
    

    In this case (where the xrange is only used as an "argument" to a for loop), a generator would probably suffice. But, in fact, xrange is implemented as an object, not a function or generator. Why? Let's find out.


  3. The exec Statement and A Python Mystery

    A few weeks ago I examined Python code objects using the dis module. In that post, I showed several examples of executing code objects created at runtime using the exec statement; here we'll explore compile()'s compliment, exec, how to invoke it, and some of the quirks of using it.


  4. A Python "Cast Constructor"

    Very occasionally, I write code where I'm given an object of some class (usually from a library call), but I wish to use additional methods on that class as though they had been defined there. In some languages (Objective-C shines in this regard with categories), you can do this very naturally. In Python, most people probably resort to monkey patching to accomplish this.


  5. Exploring Python Code Objects

    Inspired by David Beazley's Keynote at PyCon, I've been digging around in code objects in Python lately. I don't have a particular axe to grind, nor some particular task to solve (yet?), so consider this post just some notes and ramblings that might be of interest (and my apologies if not).

    Disclaimer: This post is about CPython version 2.7, though much of it is also likely true for other CPython versions (including 3.x). I make no claims to its accuracy or applicability to PyPy, Jython, IronPython, etc.


Page 1 / 3