我正在运行Python 3.6.2,并根据需要尝试将其他文件导入到我的shell提示符中。我的my_file.py中包含以下代码。
import numpy as np
def my_file(x):
s = 1/(1+np.exp(-x))
return s
从我的3.6.2 shell提示符中调用
from my_file import my_file
但是在我的shell提示符中,如果我想使用库numpy,即使导入了导入numpy的文件,我仍然必须将numpy导入到shell提示符中。这是设计使然吗?还是有一次导入numpy的方法?
答案 0 :(得分:3)
import
具有三种完全独立的效果:
scipy.special
这样的引用就可以使用)。 import foo.bar
分配foo
; import baz.quux as frob
分配baz.quux
到名称frob
。)前两个效果在所有客户端之间共享,而最后一个完全是本地的。这是设计使然,因为它避免了在不确保其可用的情况下意外使用已导入模块的依赖项(如果其他模块更改了其导入内容,稍后会中断)。它还允许不同的客户使用不同的速记。
与hpaul noted一样,您可以 使用具有限定名称的另一个模块的导入,但这会滥用该模块的接口,就像使用其他任何私有名称一样,除非(例如{{1例如}}或实际上根本不是一个模块的six.moves
,该模块打算来发布其他模块的名称。