Импорт модуля: продолжение
Посмотрите на код в редакторе. Проанализируйте его внимательно:
- строка 1: выполнить выборочный импорт;
- строка 3: использовать импортированные объекты и получить ожидаемый результат (
1.0
); - строки с 5 по 12: переопределить значение
pi
иsin
- по сути, они заменяют оригинальные (импортированные) определения в пространстве имен кода; - строка 15: получить значение
0.99999999
, что подтверждает наши выводы.
Давайте сделаем еще один тест. Посмотрите на код ниже:
pi = 3.14
def sin(x):
if 2 * x == pi:
return 0.99999999
else:
return None
print(sin(pi / 2))
from math import sin, pi
print(sin(pi / 2))
Здесь мы изменили последовательность операций в коде:
- строки с 1 по 8: определить наши собственные
pi
иsin
; - строка 9: использовать их (на экране появится 0.99999999);
- строка 12: выполнить импорт - импортированные символы заменяют их предыдущие определения в пространстве имен;
- строка 14: получить
1.0
в результате.