2017-04-18 10 views
2

私はJupyterノートブックでCanopyを使用しています。モジュールを呼び出すことなくモジュールから関数を使用する方法があるかどうか疑問に思っていました。私は呼び出しモジュールを使用しない関数を使用

import numpy as np 
print np.sin(2) 

を持っている場合たとえば、私は心に来る最初の事は、Pythonを使用しているどんな関数ライブラリにnumpyの機能を追加することです

print sin(2) 

を入力できるようにしたいでしょう。しかし、私はこれが実現可能かどうか、もしそうなら、私がそれをやり遂げる方法について疑問を抱いていました。選択した少数だけでなく、すべての関数をインポートしたいことに注意してください。

答えて

1

でこれをお読みください。試してみてください:

from numpy import sin 

print sin(2) 

あなたはimport *を使用することができるグローバルな名前空間にモジュールからすべてオブジェクトをインポートするには。

from numpy import * 
print sin(2) 

しかし、これはあなたが簡単に、例えば、名前の衝突で終わることができますので、お勧めないです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を置き換えることをここで見ることができます。

このような理由から、ほんの少しの場合は必要な特定のオブジェクトをインポートすることをお勧めします。そうでない場合は、モジュールをインポートし、モジュール名を接頭辞として使用します(最初の例)。 nump.sinあなたは両方math.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-線だけでリンク先を読むあなたの答えは からnumpy import * – Kallz

+0

いいね、ありがとう! –

関連する問題