2017-04-18 65 views
2

我在Jupyter笔记本上使用Canopy。我想知道是否有方法使用模块中的功能,而无需调用模块。例如,如果我有使用函数而不调用模块

import numpy as np 
print np.sin(2) 

我希望能够只需键入

print sin(2) 

,想到的第一件事是到numpy的功能加入到了Python使用任何函数库。但我想知道这是否可行,如果是这样,我该如何去做。请注意,我想导入所有功能,而不仅仅是一些选定的功能。

回答

1

读这可以从一个模块中导入特定对象。尝试:

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
from numpy import sin 
print sin(2) 

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

+0

我希望能导入所有功能,而不仅仅是一些功能。 –

+0

@ T-ray刚刚阅读上面的链接,你会得到你的答案 从numpy进口* – Kallz

+0

看起来不错,谢谢! –

相关问题