我正在使用Canopy和Jupyter笔记本。我想知道是否有一种方法可以使用模块中的函数而无需调用模块。例如,如果我有
import numpy as np
print np.sin(2)
我希望能够只输入
print sin(2)
首先想到的是将numpy函数添加到Python正在使用的任何函数库中。但我想知道这是否可行,如果可行,我该如何去做。请注意,我想导入所有函数,而不仅仅是少数函数。
答案 0 :(得分:2)
您可以从模块导入特定对象。尝试:
from numpy import sin
print sin(2)
要将所有对象从模块导入全局命名空间,您可以使用import *
。
from numpy import *
print sin(2)
但这是不推荐,因为您可以轻松地结束名称冲突,例如如果两个模块定义了一个名为sin
的函数,应调用哪个版本的sin
?
>>> import math
>>> import numpy
>>> math.sin
<built-in function sin>
>>> numpy.sin
<ufunc 'sin'>
>>> from math import *
>>> sin
<built-in function sin>
>>> from numpy import *
>>> sin
<ufunc 'sin'>
您可以在此处看到numpy
的第二次导入替换了全局命名空间中的sin
。
因此,如果只有少数特定对象,最好导入所需的特定对象,否则只需导入模块并使用模块名称作为前缀(根据您的第一个示例)。在我的示例中,如果要同时使用math.sin
和nump.sin
,则需要仅使用模块名称导入模块和前缀,或者导入函数并将其重命名为:
from numpy import sin as np_sin
from math import sin
答案 1 :(得分:1)
from numpy import sin
print sin(2)