June 18, 2004

Python - a readable snake

Filed under: General Information — Ryan Wilcox @ 4:07 pm

One of the neat things about Python is that it’s very readable - even when you’re learning a module you’ve never seen before.

Take this code, from the Pycurl project:

import sys
import pycurl

class Test:
def __init__(self):
self.contents = ''

def body_callback(self, buf):
self.contents = self.contents + buf

print >>sys.stderr, 'Testing', pycurl.version

t = Test()
c = pycurl.Curl()
c.setopt(c.URL, 'http://curl.haxx.se/dev/')
c.setopt(c.WRITEFUNCTION, t.body_callback)
c.setopt(c.HTTPHEADER, ["I-am-a-silly-programmer: yes indeed you are",
"User-Agent: Python interface for libcURL"])
c.perform()
c.close()

print t.contents

A 2 minute look at this example and you know what’s going on - make a new curl object, go to the following url, and when we’re downloading data from that location, use a small class as a data store. When we’re done, print the contents of our data store.

It just made sense, even if it feels very C like (which makes sense - it’s based on a C API after all.

Plus, Python modules are usually a lot easier to install than C++ code (especially when make gives cryptic error messages - gcc: no input files or some such.) when trying to compile them.)

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.