如何在Python中不使用IDE轻松找到类的命名空间?
通常,我使用IntelliJ来进行Python编程。但是有时候我无法使用它,或者只是想快速编辑一下,就会在文本编辑器中打开Python文件。
在这种情况下,找到一个类的命名空间真的很困难。我在网上搜索,但这需要时间。有没有更好的方法呢?
编辑:看了大家的回复,我发现我的问题不是很清楚。
我需要在编码时找到一个类的命名空间,而不是在运行时。因此,像使用inspect
或__module__
这样的反射方法对我没有帮助。
WildSeal建议使用在线文档。这很好,但仅对Python的标准库有用。我想搜索当前Python路径下安装的所有模块。在IntelliJ中这很简单,因为它已经索引了所有文件。
我尝试使用grep
在site-packages
目录中搜索类。但是搜索所有文件需要很长时间,可能是因为它们没有被索引。
6 个回答
2
我使用 ctags,并且提前把我的 site-packages
以及其他文件夹都进行了索引。其实有很多 图形界面和命令行工具 可以和 ctags 配合使用,帮助你完成需要的工作。就我个人而言,我用 vim
作为文本编辑器,并且安装了 TagList 插件(使用说明)。
2
试试 inspect 这个模块里的 getmodule 函数:
>>> import inspect
>>> class Foo:
pass
>>> inspect.getmodule(Foo)
<module '__main__' (built-in)>
里面还有很多其他有趣的东西。
3
别忘了 dir()
这个函数,它在我们这些使用 vim 作为开发工具的人中非常常用。