SORU
15 ŞUBAT 2009, Pazar


Alma "genel adı '' tanımlanan" değildir foo;'In Python ile timeit

Deniyorum öğrenmek için ne kadar zaman alır çalıştırmak için bir Python deyimi, çok baktım online ve bulunan standart kütüphane sağlar bir modül timeit bu iddia için tam olarak bu

import timeit

def foo():
    # ... contains code I want to time ...

def dotime():
    t = timeit.Timer("foo()")
    time = t.timeit(1)
    print "took %fs\n" % (time,)

dotime()

Ancak, bu bir hata üretir:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in dotime
  File "/usr/local/lib/python2.6/timeit.py", line 193, in timeit
    timing = self.inner(it, self.timer)
  File "<timeit-src>", line 6, in inner
NameError: global name 'foo' is not defined

Hala yeni Python çalışıyorum ve tamamen tüm ölçüm sorunları anlamıyorum, ama bu kod çalışmıyor neden bilmiyorum. Herhangi bir düşünce?

CEVAP
15 ŞUBAT 2009, Pazar


bu çizgi çizmeyi denedi:

t = timeit.Timer("foo()")

Bu:

t = timeit.Timer("foo()", "from __main__ import foo")

En altta verdiğiniz linki kontrol edin.

Bu timeit tanımladığınız fonksiyonlar modülü erişim vermek için bir alma deyimi içeren bir kurulum parametresi iletebilirsiniz:

Ben sadece benim makinede Test ve değişiklikleri ile çalıştı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dan Gately

    Dan Gately

    13 AĞUSTOS 2006
  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • Tinkernut

    Tinkernut

    28 Aralık 2006