繁体   English   中英

如何找到可从 package 中导入的模块?

[英]How do I find the modules that are available for import from within a package?

有没有办法知道可以从 package 内部导入哪些模块?

许多包将包含一个名为__all__的列表,其中列出了成员模块。 这在 python 执行from x import *时使用。 您可以在此处阅读更多相关信息。

如果 package 未定义__all__ ,您将不得不执行类似于我之前提出的问题的答案, here

你有来源。

查看 package 目录中的文件。 这些模块可供您导入。

目录([对象]);

如果没有 arguments,dir() 返回当前本地 scope 中的名称列表。 使用参数,尝试返回该 object 的有效属性列表。

因此,对于模块,例如“sys”:

>>> import sys
>>> dir(sys)
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdout__', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'hexversion', 'maxint', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'pydebug', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']

这里的所有都是它的。

进口弗雷德

打印目录(弗雷德)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM