Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

Работа с модулями. Инструкция from - Python

Инструкция from - 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. Благодаря точечной нотации пространство имен не нарушается.

Все чаще в интернете замечается закрытие как и добровольное так и принудительное некоторых сайтов на которых вы чаще всего бывали. Например

могу играть в слоты только тут, это проверенный сайт на которого я потратил не мало часов. Приятная обстановка и различные логические игры которые не на шутку заставляют задуматься и придумывать свои стратегии.

Комментариев: 1
  1. Общее понимание модулей это конечно хорошо, но надеюсь видеть на сайте статьи с использованиям популярных библиотек и модулей в реально работе. Рад видеть хорошие блоги которые развивают этот язык программирования.

Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)