В Пайтоне имеется большое количество заранее написанных кодов, которые также известны как модули и пакеты. Модуль – это один файл, импортируемый Пайтоном, в то время как пакет состоит из двух и более модулей. Пакеты импортируются таким же образом, как и модули. Каждый сохраненный вами скрипт в Пайтоне является модулем. Это, конечно, может быть далеко не самым полезным модулем, но тем не менее. В данном разделе мы рассмотрим, как импортировать модули при помощи нескольких различных методов.
Импортируем модуль «this»
В Пайтоне есть ключевые слова для импорта модулей. Попробуйте вот этот:
Pythonimport this1import this
Запустив данный код в своем интерпретаторе, вы увидите что-то в таком духе:
PythonThe Zen of Python, by Tim PetersBeautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is better than nested.Sparse is better than dense.Readability counts.Special cases aren’t special enough to break the rules.Although practicality beats purity.Errors should never pass silently.Unless explicitly silenced.In the face of ambiguity, refuse the temptation to guess.There should be one— and preferably only one —obvious way to do it.Although that way may not be obvious at first unless you’re Dutch.Now is better than never.Although never is often better than *right* now.If the implementation is hard to explain, it’s a bad idea.If the implementation is easy to explain, it may be a good idea.Namespaces are one honking great idea — let’s do more of those!1234567891011121314151617181920The Zen of Python, by Tim PetersBeautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is better than nested.Sparse is better than dense.Readability counts.Special cases aren’t special enough to break the rules.Although practicality beats purity.Errors should never pass silently.Unless explicitly silenced.In the face of ambiguity, refuse the temptation to guess.There should be one— and preferably only one —obvious way to do it.Although that way may not be obvious at first unless you’re Dutch.Now is better than never.Although never is often better than *right* now.If the implementation is hard to explain, it’s a bad idea.If the implementation is easy to explain, it may be a good idea.Namespaces are one honking great idea — let’s do more of those!
(adsbygoogle = window.adsbygoogle || []).push({});
Поздравляем, вы нашли «пасхальное яйцо» в Пайтоне, также известное как «Дзен». Это одна из лучших неофициальных частей работы в Пайтон. Сам по себе модуль this не делает ничего особенного, только показывает оригинальный способ импорта чего-либо. Теперь давайте импортируем что-нибудь, чем мы сможем воспользоваться в будущем, к примеру, модуль math:
Pythonimport mathprint(math.sqrt(4)) # 2.0123import math print(math.sqrt(4)) # 2.0
В примере выше мы импортировали модуль math и сделали что-то новое. Мы вызвали одну из функций модуля – sqrt (т.е. square root – квадратный корень). Для вызова метода импортированного модуля, нам нужно использовать следующий синтаксис: module_name.method_name(аргумент). В данном примере мы нашли квадратный корень от 4. В модуле math есть много других функций, которыми мы можем воспользоваться, такие как нахождение косинуса, факториал, логарифмы и другие. Вы можете призывать эти функции таким же образом, как и с функцией sqrt. Единственное, в чем вам нужно удостовериться – принимают ли они большее количество аргументов или нет. Теперь посмотрим на другой способ импорта.
Использование from в импорте
Некоторые люди не очень любят обозначать все, что они пишут названиями модулей. Впрочем, в Пайтоне есть решение и для этого. Вы можете импортировать из модуля только те функции, которые вам нужны. Представим, что нам нужно импортировать только функцию sqrt:
Pythonfrom math import sqrtprint( sqrt(16) ) # 4.0123from math import sqrt print( sqrt(16) ) # 4.0
Это работает именно так, как читается: функция sqrt импортируется из модуля math. Попробую объяснить это иначе. Мы использовали ключевое слово from для импорта функции sqrt из модуля math. Мы также можем использовать этот метод для импорта нескольких функций из модуля math:
Pythonfrom math import pi, sqrt1from math import pi, sqrt
В данном примере мы импортировали как sqrt так и pi. Перед тем как обратиться к pi, стоит обратить внимание на то, что это не функция, которую вы вызываете, а величина.
Заказать дешевых подписчиков в группу ВК с качественными страницами можно на сервисе https://doctorsmm.com/. Вам также будет предложен широкий выбор формата ресурса и скорости его поступления. Обратите внимание, что практически на каждую услугу действуют внушительные оптовые скидки и гарантии. Не упустите свое выгодное предложение!
Когда вы выполняете импорт, вы действительно можете сделать это с величинами, функциями, даже с другим модулем. Есть еще один способ импорта, на который стоит обратить внимание. Давайте импортируем вообще всё!
[vc_row][vc_column width=»1/3″ css=».vc_custom_1600070905017{background-color: #81d742 !important;}»][vc_icon
icon_fontawesome=»fa fa-question-circle» color=»green» background_style=»rounded» size=»lg» align=»center»][vc_column_text]
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
[/vc_column_text][vc_btn title=»Python Форум Помощи» color=»mulled-wine» align=»center» i_icon_fontawesome=»fa fa-share-square-o» button_block=»true» add_icon=»true» link=»url:https%3A%2F%2Fitfy.org%2F||target:%20_blank|rel:nofollow»][/vc_column][vc_column width=»1/3″ css=».vc_custom_1600071246022{background-color: #eeee22 !important;}»][vc_icon icon_fontawesome=»fa fa-telegram» color=»sky» background_style=»rounded» size=»lg» align=»center»][vc_column_text]
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
[/vc_column_text][vc_row_inner][vc_column_inner width=»1/2″][vc_btn title=»Чат» color=»sky» align=»center» i_icon_fontawesome=»fa fa-comments» button_block=»true» add_icon=»true» link=»url:https%3A%2F%2Ftelegram.im%2F%40python_scripts%3Flang%3Dru||target:%20_blank|rel:nofollow»][/vc_column_inner][vc_column_inner width=»1/2″][vc_btn title=»Канал» color=»sky» align=»center» button_block=»true» link=»url:https%3A%2F%2Ftelegram.im%2F%40pip_install%3Flang%3Dru||target:%20_blank|rel:nofollow»][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=»1/3″ css=».vc_custom_1600071543031{background-color: #27cbf4 !important;}»][vc_icon icon_fontawesome=»fa fa-vk» color=»peacoc» background_style=»rounded» size=»lg» align=»center»][vc_column_text]
Паблик VK
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
[/vc_column_text][vc_btn title=»Подписаться» color=»violet» align=»center» i_icon_fontawesome=»fa fa-vk» button_block=»true» add_icon=»true» link=»url:https%3A%2F%2Fvk.com%2Fopen_sourcecode||target:%20_blank|rel:nofollow»][/vc_column][/vc_row]window.yaContextCb.push(()=>{ Ya.Context.AdvManager.render({ renderTo: ‘yandex_rtb_R-A-457373-16’, blockId: ‘R-A-457373-16’ })})
Импорт всего
В Пайтоне предусмотрена возможность импорта всех функций, переменных и модулей за раз. Это может быть плохой идеей, так как такой импорт может засорить ваше пространство имен. Пространство имен – это место, в котором находятся все ваши переменные, пока работает программа. К примеру, у вас есть своя переменная под названием sqrt:
Pythonfrom math import sqrtsqrt = 512from math import sqrtsqrt = 5
Только что вы сделали функцию sqrt переменной, значение которой 5. Это называется затенением (shadowing). Это особенно хитрый способ упрощения своей жизни, когда вы выполняете импорт всего из модуля. Давайте взглянем:
Pythonfrom math import *sqrt = 5sqrt(16)1234from math import * sqrt = 5sqrt(16)
Будет ошибка!
PythonTraceback (most recent call last): File “<string>”, line 1, in <fragment>TypeError: ‘int’ object is not callable123Traceback (most recent call last): File “<string>”, line 1, in <fragment>TypeError: ‘int’ object is not callable
Для импорта всего, кроме определенных частей модуля, мы просто используем знак * , что означает, что нам нужно импортировать все. В случае если мы не знаем, что находится в модуле math, мы даже не поймем, что уничтожили одну из импортированных функций. Когда мы пытаемся вызвать функцию sqrt после присвоения её целому числу, мы обнаружим, что она больше не работает.
window.yaContextCb.push(()=>{ Ya.Context.AdvManager.render({ renderTo: ‘yandex_rtb_R-A-457373-3’, blockId: ‘R-A-457373-3’ })})
По этой причине, в большинстве случаев рекомендуется использовать один из указанных в данном разделе способов для импорта. Но есть и несколько исключений из этого правила. В некоторых модулях импорт предусмотрен заранее, это возможно благодаря методу “*”. Одним из ярких примеров является Tkinter – набор инструментов, работающий с Пайтоном, который позволяет пользователю создавать пользовательские интерфейсы на рабочем столе. Причина, по которой определенно удобно импортировать через Tkinter заключается в том, что модули все имеют имена, так что вероятность повторного использования стремится к нулю.
Подведем итоги
Теперь вы знаете все об импорте в Пайтоне. Существуют десятки модулей, которые включены в Пайтон и которые вы можете применять для поднятия функционала своих программ. Вы можете использовать встроенные модули для запросов ОС, получить информацию из реестра Windows, настроить утилиты ведения журнала, выполнять анализ XML и многое, многое другое.