2016-12-15 142 views
3

在我的Python標準庫(Python的2.7)方法,我找了在模塊內的具體方法。尋找Python標準庫

例如,如果我打開re.py,我可以看到有像findall具體方法,search等 同樣是顯而易見的,當我做dir(re)。我可以清楚地看到上述方法。

同樣,當我做dir(os)時,存在一種稱爲system的方法,我通常使用os.system(cmd_name)來調用。

但是,當我os.py下尋找這個方法,它不存在。難道我做錯了什麼?請指導

回答

5

該功能未在os模塊中定義,因此在os.py中找不到定義。它從另一個模塊導入os;哪個模塊將取決於您的操作系統。您可以檢查:

>>> os.system.__module__ 
'nt' 

在這裏,你可以看到,因爲我是在Windows上,os.system來自nt模塊。


你可能會發現,os.system.__module__要麼'nt''posix',代表無論是ntposix模塊。那麼問題是,這些模塊在哪裏定義?沒有nt.pyposix.py

原來這些模塊用C語言實現,在Modules/posixmodule.c。是的,nt模塊是posixmodule.cposix模塊也是如此。有點奇怪。

+0

如何訪問nt模塊?我想看看def system的代碼 – fsociety

+1

@fsociety:Answer擴展。 – user2357112

+0

有沒有辦法看看posixmodule.c?請原諒我的無知 – fsociety