[英]How to control which objects are imported from a module
我有一个模块,我想控制从中导入哪些对象。 结构是这样的:
/src
/example_pkg
__init__.py
foo.py
__init__.py
__init__.py
在这两种情况下都是空的
foo.py
看起来像这样:
import numpy as np
def foo_func():
x = np.sin(1)
print('sine of 1 is ' + str(x))
当我按如下方式导入 foo 时:
import foo
dir(foo)
我得到这个 output:
['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'foo_func',
'np']
为了整洁,我宁愿不导入 np ,这样当我输入foo.
并点击自动完成选项卡(例如在 spyder 中)只显示我模块中的对象。 我宁愿 import 命令只是自动导入在foo.py
中创建的所有对象。 是否有可能做到这一点? 我宁愿避免from foo import *
并在__init__.py
中定义所有对象
我很欣赏这是一个基本问题,但我环顾四周,看不到明显的答案。
这实际上取决于您的自动完成器,但它应该遵守_
前缀名称不用于模块本身之外的约定。 ( from foo import *
本身会忽略这些名称。)
利用
import numpy as _np
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.