comment passer des paramètres d'une fonction lors de l'utilisation de timeit.Timer()

C'est le contour d'un programme simple

# some pre-defined constants
A = 1
B = 2

# function that does something critical
def foo(num1, num2):
    # do something

# main program.... do something to A and B
for i in range(20):
    # do something to A and B
    # and update A and B during each iteration

import timeit
t = timeit.Timer(stmt="foo(num1,num2)")  
print t.timeit(5)

- Je continuer à recevoir "nom global foo n'est pas défini".....
Quelqu'un peut-il m'aider sur ce point? Merci!

  • Tout d'abord, la mise en retrait ici est source de confusion. Il ressemble à foo est définie dans un autre champ que t...
  • salut. je fixe l'indentation. c'est un peu mieux maintenant? :] merci.
  • timeit est ok pour les one-liners mais pour rien d'autre de mieux vérifier cette méthode stackoverflow.com/questions/5478351/...
  • Il y a une solution très simple pour ce en python3, il vous suffit d'exécuter l'expression dans l'espace de noms global en ajoutant le globals=globals() paramètre à la timeit appel: stackoverflow.com/a/51913199/2925963
InformationsquelleAutor CppLearner | 2011-02-23