Ich mag die Ausführungsgeschwindigkeit des folgenden Codes messen:Timeit, NameError: globaler Name ist nicht definiert. Aber ich habe nicht mit einer globalen Variablen
def pe1():
l = []
for i in range(1000):
if i%3 == 0 or i%5 == 0:
l.append(i)
print sum(l)
ich diesen Code unter pe1m.py gespeichert. Jetzt möchte ich die Geschwindigkeit der Datei mit dem Python-Interpreter testen. Ich tat:
import timeit
import pe1m
t = timeit.Timer(stmt = 'pe1m.pe1()')
t.timeit()
aber ich bekomme:
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/timeit.py", line 195, in timeit
timing = self.inner(it, self.timer)
File "<timeit-src>", line 6, in inner
NameError: global name 'pe1m' is not defined
Aber ich habe keine globalen Variablen.
Wenn Sie die Module importieren, gibt es eine Erklärung: import pe1m, die imho, ein Tippfehler für ein anderes Modul ist. – hjpotter92
Mögliches Duplikat von [Getting "global name 'foo' ist nicht definiert" mit Python's timeit] (https://stackoverflow.com/questions/551797/getting-global-name-foo-is-not-defined-with-pythons -timeit) – sds