Меня немного смущает, как import
работает в Python (3.5).Я думал, что использование чего-то вроде «import x» будет таким же, как запись всего, что записано в «x.py», однако это не похоже на это.
У меня есть следующая структура:
Теперь, просто для завершения, модуль:
## module1.py
import numpy as np
import matplotlib.pyplot as plt
def plot(x,y):
A = plt.figure()
plt.plot(x,y)
plt.show()
return A
Так что он действительно не делает ничего такого, что matplotlib.pyplot
не делал бы.Теперь мой main.py просто называет это так:
## main.py
from Package1.module1 import plot
a= plot([1,2,3],[2,4,6])
И это работает.Поэтому я предполагаю, что он на самом деле импортирует matplotlib.pyplot
как plt, так как в противном случае функция plot
не будет работать.Однако, если теперь я добавлю что-нибудь к main.py
, например plt.figure()
или np.array()
, он скажет, что не распознает их.
Таким образом, фактический вопрос: импортировал ли я matplotlib.pyplot
в основное пространство имен?Если нет, есть ли другое пространство имен здесь?Если есть, если я теперь хочу использовать matplotlib
в main.py
ниже этого кода, и я импортировал его снова с import matplotlib.pyplot as plt
, я бы импортировал его дважды?
Я немного потерянв иерархии здесь.