23.6 Lookup 

Wenn über einen Modulnamen auf eine Funktion zugegriffen wird, die in diesem Modul enthalten ist, muss bei jedem Funktionsaufruf ein sogenannter Lookup durchgeführt werden. Dieser Lookup muss nicht durchgeführt werden, wenn eine direkte Referenz auf das Funktionsobjekt besteht. Stellen Sie sich einmal vor, Sie wollten die Quadratwurzeln aller natürlichen Zahlen zwischen 0 und 100 bestimmen. Dazu kommt einem zunächst folgender Ansatz in den Sinn:
import math for i in xrange(100): math.sqrt(i)
Wesentlich effizienter ist es jedoch, die Funktion sqrt des Moduls math direkt zu referenzieren und über diese Referenz anzusprechen:
import math s = math.sqrt for i in xrange(100): s(i)
Die Schleife der zweiten Variante kann um ca. 25 % schneller ausgeführt werden als die Schleife der ersten.




bestellen





