2010-01-04 3 views
2

Que signifie ce code?Impossible de trouver thread.py

try: 
    import thread 
except ImportError: 
    del _sys.modules[__name__]#why 
    raise 

Mais je ne trouve pas le fichier thread.py.

pourquoi, del _sys.modules[__name__]

Répondre

5

que le code de Python threading.py tente de charger la mise en œuvre de C du module thread. Si cela échoue (pour une raison quelconque, cela n'a pas été compilé, comme ce serait le cas avec toutes les distributions Python), alors il se supprime de la liste des modules, de sorte que threading n'apparaît pas comme ayant été importé.

Si vous êtes à la recherche de la source du module thread, il est ici: http://svn.python.org/projects/python/trunk/Python/thread.c

0

doit y avoir une logique personnalisée - garder une trace de ce qui est importé et où. Dans régulière Python 3.1 ce code autonome ne fonctionne pas:

>>> try: 
    import thread 
except: 
    del _sys.modules[__name__] 
    raise 

Traceback (most recent call last): 
    File "<pyshell#10>", line 4, in <module> 
    del _sys.modules[__name__] 
NameError: name '_sys' is not defined 
>>> 

Où avez-vous trouvé?

+0

Il se trouve dans le module 'threading' de la bibliothèque standard. –

Questions connexes