2015-05-20 15 views
8

O ile się nie mylę, te dwie linie zrobić dokładnie to samo:Dlaczego istnieją niepotrzebne sposoby importowania w języku Python?

import theano.tensor as T 

from theano import tensor as T 

Czy jest jakiś powód, dla którego istnieją zbędne sposoby importowania w Pythonie?

+0

To może tłumaczyć, jak sytuacja mogłaby być, ale wtedy byłoby pytanie dlaczego jeden wybrany jako standard nad drugim? –

+0

Nie robią tego samego * we wszystkich okolicznościach * ... – jonrsharpe

Odpowiedz

6

Oświadczenie

import theano.tensor 

działa tylko jeśli theano.tensor jest moduł sama. To pozwala na działanie obu przykładów.

Zastanów się, sys.argv, który nie jest modułem. Następujące prace:

from sys import argv 

który importuje argv do globalnej przestrzeni nazw, ale forma import nie:

>>> import sys.argv 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named argv 
+0

Niesamowita odpowiedź, dzięki. A jeśli chodzi o dalsze noob, co technicznie jest nazwa dla 'sys.argv', jeśli nie jest modułem? –

+0

Więc mówisz, że możemy używać notacji kropkowej tylko po to, aby uzyskać dostęp do submodułów, inaczej nie możemy użyć tej notacji ..? – nbro

+1

'sys.argv' jest po prostu w pełni kwalifikowaną nazwą obiektu (w tym przypadku instancji' list'.) – chepner

Powiązane problemy