[Python-Dev] Draft proposal: Implicit self in Python 3.0 (original) (raw)

Ralf W. Grosse-Kunstleve rwgk at yahoo.com
Sun Jan 8 16:35:53 CET 2006


--- Fredrik Lundh <fredrik at pythonware.com> wrote:

Ralf W. Grosse-Kunstleve wrote:

> Please make Python more selfish. Note that this is also an obvious avenue > for significant performance increases. If self is implicit you don't have to do > the dictionary lookup for "self" all the time as is the case now. what dictionary lookup ?

IIUC, "self" is first looked up in the local dictionary.

Please try the code below to see the performance impact. As an alternative to a copy/paste exercise try this:

wget http://cci.lbl.gov/~rwgk/python/self_lookup.py python self_lookup.py

The output with Python 2.4.1/Fedora3/Opteron is:

loop_function: 13.10 loop_class: 17.11

Cheers, Ralf

import time

def loop_function(x, n): result = 0 for i in xrange(n): result += x return result

class loop_class:

def init(self, x, n): self.x = x self.n = n

def call(self): result = 0 for i in xrange(self.n): result += self.x return result

def run(x=3.1415, n=10**8): t0 = time.time() loop_function(x=x, n=n) print "loop_function: %.2f" % (time.time() - t0) t0 = time.time() loop_class(x=x, n=n)() print " loop_class: %.2f" % (time.time() - t0)

if (name == "main"): run()


Yahoo! DSL – Something to write home about. Just $16.99/mo. or less. dsl.yahoo.com



More information about the Python-Dev mailing list