繁体   English   中英

如何控制从模块中导入哪些对象

[英]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.

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