Pourquoi le code Python s'exécute-t-il plus vite dans une fonction?

def main():
    for i in xrange(10**8):
        pass
main()

Ce bout de code en Python exécute dans (Remarque: La synchronisation se fait avec la fonction de temps en BASH sous Linux.)

real    0m1.841s
user    0m1.828s
sys     0m0.012s

Toutefois, si la boucle n'est pas placé à l'intérieur d'une fonction,

for i in xrange(10**8):
    pass

puis il exécute pour un temps beaucoup plus long:

real    0m4.543s
user    0m4.524s
sys     0m0.012s

Pourquoi est-ce?

source d'informationauteur thedoctar