使用函数而不调用模块

时间:2017-04-18 02:30:48

标签: python import module

我正在使用Canopy和Jupyter笔记本。我想知道是否有一种方法可以使用模块中的函数而无需调用模块。例如,如果我有

import numpy as np
print np.sin(2)

我希望能够只输入

print sin(2)

首先想到的是将numpy函数添加到Python正在使用的任何函数库中。但我想知道这是否可行,如果可行,我该如何去做。请注意,我想导入所有函数,而不仅仅是少数函数。

2 个答案:

答案 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.sinnump.sin,则需要仅使用模块名称导入模块和前缀,或者导入函数并将其重命名为:

from numpy import sin as np_sin
from math import sin

答案 1 :(得分:1)

from numpy import sin
print sin(2)

https://docs.python.org/2/tutorial/modules.html详细阅读