2010-01-04 53 views
2

這段代碼是什麼意思?找不到thread.py

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

但我無法找到thread.py。

爲什麼,del _sys.modules[__name__]

回答

5

從Python的threading.py該代碼試圖加載C實現thread模塊。如果失敗(由於某些原因,這還沒有被編譯,就像所有的Python發行版一樣),那麼它會從模塊列表中刪除它自己,這樣threading就不會顯示爲已經被導入。

如果你正在尋找thread模塊的源,它在這裏:http://svn.python.org/projects/python/trunk/Python/thread.c

0

必須有一些自定義的邏輯 - 跟蹤什麼是進口和地點。在常規Python 3.1中,此獨立代碼不起作用:

>>> 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 
>>> 

您從哪裏找到這個?

+0

它在標準庫'threading'模塊中。 – 2015-01-16 06:07:56