Работа с модулями. Инструкция from - Python
Модули инструкция from python, скрипты python, уроки для начинающих python
Для импортирования определенных идентификаторов из модулей можно воспользоваться инструкцией from. Инструкция from имеет несколько форматов:
from <Название модуля> import <Идентификатор 1> [ as <Псевдоним 1> ]
from <Название модуля> import *
Первый формат позволяет импортировать модуль и сделать доступные только указанные идентификаторы. Для длинных имен можно назначить псевдоним, указав его после ключевого слова as. В качестве примера сделаем доступными константу pi и функцию floor() из модуля math, а для названия функции создадим псевдоним.
# -*- coding: cp866 -*-
from math import pi, floor as f
print pi
# Вызываем функцию floor() через идентификатор f()
print f(3.39) # Выдает: 3.00
raw_input()
Идентификаторы можно разместить на нескольких строках, указав их название через запятую внутри круглых скобок:
from math import (pi, floor, sin, cos)
Второй формат инструкции from позволяет импортировать все идентификаторы из модуля. Для примера импортируем все идентификаторы из модуля math:
# -*- coding: cp866 -*-
from math import * # Импортируем все идентификаторы из модуля math
print pi
print floor(4.35) # 4.0
print cos(0) # 1.0
print sin(0) # 0.0
Следует заметить, что идентификаторы, названия которых начинаются с символа подчеркивания, импортированы не будут. Кроме того, необходимо учитывать, что импортирование всех идентификаторов из модуля может нарушить пространство имен главной программы, т.к. идентификаторы, имеющие одинаковые имена, будут перезаписаны. Создадим два модуля и подключим их с помощью инструкции from и import. Содержание файла module1.py приведено в листинге ниже:
Содержимое файла module1.py
# -*- coding: cp866 -*-
s = "Значение из модуля module1"
Содержимое файла module2.py
# -*- coding: cp866 -*-
s = "Значение из модуля module2"
Исходный код основной программы
# -*- coding: cp866 -*-
from module1 import *
from module2 import *
import module1, module2
print s # Выведет: "Значение из модуля module2"
print module1.s # Выведет: "Значение из модуля module1"
print module2.s # Выведет: "Значение из модуля module2"
raw_input()
Размещаем все файлы в одной папке, а заетм запускаем основную программу с помощью двойного щелчка на значке файла. Итак, в обоих модулях определена переменная с именем s. При импортировании всех идентификаторов значением переменной s будет значение из модуля, который был импортирован последним. В нашем случае это значение из модуля module2.py. Получить доступ к обеим переменным можно только при использовании import. Благодаря точечной нотации пространство имен не нарушается.
Все чаще в интернете замечается закрытие как и добровольное так и принудительное некоторых сайтов на которых вы чаще всего бывали. Например
могу играть в слоты только тут, это проверенный сайт на которого я потратил не мало часов. Приятная обстановка и различные логические игры которые не на шутку заставляют задуматься и придумывать свои стратегии.
Общее понимание модулей это конечно хорошо, но надеюсь видеть на сайте статьи с использованиям популярных библиотек и модулей в реально работе. Рад видеть хорошие блоги которые развивают этот язык программирования.