【发布时间】:2013-12-13 01:42:45
【问题描述】:
我是Python 的新手,我正在创建一个模块来重用一些代码。
我的模块(impy.py)看起来像这样(到目前为止它只有一个功能)...
import numpy as np
def read_image(fname):
....
并且存储在以下目录中:
custom_modules/
__init.py__
impy.py
如您所见,它使用模块 numpy.问题是当我从另一个脚本导入它时,像这样......
import custom_modules.impy as im
然后我输入im.,我不仅可以选择调用函数read_image(),还可以调用模块np。
我怎样才能使它只可用我在我的模块中编写的函数,而不是我的模块正在调用的模块(在这种情况下为 numpy)?
非常感谢您的帮助。
【问题讨论】:
-
在我看来这很正常,因为
import使模块属于模块的内存空间。那么,“我可以选择致电(...)”是什么意思?这是您的 IDE 的提议吗?在这种情况下, -
@Joël 是的,这是 IDE (Spyder) 的提议。但无论如何我认为用户能够通过我的模块调用 numpy 是不好的,它应该是防止这种情况的一种方式......
-
好吧,我想说这是 IDE 的问题,而不是 Python 的问题,它为您提供了对所有可用对象的引用。
-
我不认为...我认为这应该是防止这种情况发生的一种方式...
-
是的,我在 Idle 中看到了这一点,所以我理解您对模块导入和模块属性/类/函数之间有些混淆的担忧,请参阅我的回答。
标签: python python-2.7 python-import python-module