2010-01-10 25 views
1

通常,我使用IntelliJ進行python編程。但有時我無法訪問它,或者只是爲了快速編輯,我在文本編輯器中打開一個Python文件。如何在不使用IDE的情況下輕鬆地在Python中找到類的名稱空間?

在那些時候,真的很難找到一個類的名字空間。我用Google搜索。但這需要時間。有一個更好的方法嗎?

編輯: 看看回復,我注意到我的問題不是很清楚。

我需要在編碼時找到類的名字空間,而不是在運行時。因此,像使用inspect__module__這樣的內省方法不能幫助我。

WildSeal建議使用online doc。這很好,但它只對Python的標準庫有用。我想搜索我當前Python路徑中安裝的所有模塊。 IntelliJ很容易。它已經索引了所有文件。

我試圖使用grep搜索site-packages目錄中的類。但是,搜索所有文件需要很長時間,可能因爲它們沒有被編入索引。

+1

您可以在這裏詳細說明* namespace *的含義嗎?你的意思是包含類定義的文件嗎?或者它的內容可能? – 2010-01-10 18:27:11

+2

這就是爲什麼你不應該'輸入*'。 – 2010-01-10 19:12:02

+0

修改命名空間怎麼樣? – 2017-06-22 22:00:11

回答

0

您可以檢查online documentation或與Python一起安裝的文檔。如果你搜索一個函數或類,你會得到所有的相關信息(我假設你指的是Python標準庫中的類或函數的包或模塊)。

雖然沒有那麼多,但至少人們通常在同一時間使用,所以你應該快速瞭解它們。

0

特殊屬性__module__是定義類的模塊名稱。如果在頂層腳本中定義,它將是'__main__'。

2

讓我們不要忘記dir(),這是我們這些誰使用vim作爲我們的IDE大量使用。

+0

可以使用'dir'設置新的屬性嗎? – 2017-06-22 21:59:34

0

嘗試inspect .getmodule:

>>> import inspect 
>>> class Foo: 
    pass 

>>> inspect.getmodule(Foo) 
<module '__main__' (built-in)> 

很多其他有趣的東西在那裏。

+0

你可以在導入後使用'dir(inspect)'來找出你可以用'inspect'做什麼! – jathanism 2010-01-11 15:21:59

1

我使用ctags,我有我的site-packages以及其他提前索引的文件夾。有一些GUI and command line tools將與ctags集成,以滿足您的需求。就我個人而言,我使用vim作爲帶TagList插件的文本編輯器(instructions)。

相關問題