Рубрики
Без рубрики

Рестаментация импорта Python объяснила

Автор оригинала: FreeCodeCapm Team.

При обучении программирования и чтении некоторых ресурсов вы попадаете на это слово «абстракция», которое просто означает уменьшение и повторно использовать код как можно больше.

Функции и модули облегчают абстракцию. Вы создаете функции, когда вы хотите сделать что-то неоднократно в файле.

Модули входят в картинку, когда вы хотите использовать группу функций в разных исходных файлах. Модули также полезны в конструктивных программах хорошо.

  • Используя стандартные библиотеки и другие сторонние модули
  • Структурирование программы

Используя стандартные библиотеки

Пример: вы можете прочитать о методах/функциях всех стандартных библиотек в официальных документах Python подробно.

import time
for i in range(100):
    time.sleep(1)   # Waits for 1 second and then executes the next command
    print(str(i) + ' seconds have passed')  # prints the number of seconds passed after the program was started

Запустите код

# To calculate the execution time of a part of program
import time
start = time.time()
# code here
end = time.time()
print('Execution time:' , end-start)

Запустите код

# Using math Module
import math
print(math.sqrt(100))   # prints 10

Запустите код

Используя сторонние модули

Третьими модулями не приходят в комплекте с Python, но мы должны установить его внешне, используя менеджеры пакетов, как Пип и Простая установка

# To make http requests
import requests
rq = requests.get(target_url)
print(rq.status_code)

Узнайте больше о модуле Python-запросов здесь

Для структурирования программ

Мы хотим сделать программу, которая имеет различные функции, касающиеся простых чисел. Итак, начнем. Мы определим все функции в Prime_functions.py.

# prime_functions.py
from math import ceil, sqrt
def isPrime(a):
    if a == 2:
        return True
    elif a % 2 == 0:
        return False
    else:
        for i in range(3,ceil(sqrt(a)) + 1,2):
            if a % i == 0:
                return False
        return True

def print_n_primes(a):
    i = 0
    m = 2
    while True:
        if isPrime(m) ==True:
            print(m)
            i += 1
        m += 1
        if i == a:
            break

Теперь мы хотим использовать функции, которые мы только что создали в Prime_functions.py Итак, мы создаем новый файл Playground.py использовать эти функции.

Обратите внимание, что эта программа слишком проста, чтобы сделать два отдельных файла, это просто для демонстрации. Но когда есть большие сложные программы, разные файлы действительно полезны.

# playground.py
import prime_functions
print(prime_functions.isPrime(29)) # returns True

Сортировка импорта

Хорошая практика – сортировать Импорт Модули в трех группах – стандартная библиотека импортирует, связанные с ними сторонний импорт и локальный импорт. В каждой группе это разумно сортировать в алфавитном порядке по имени модуля. Вы можете найти Больше информации в Pep8 Отказ

Одной из самых важных вещей для языка Python является разборчивость, а в алфавитном порядке модули сортировки являются быстрее для чтения и поиска. Также легче убедиться, что что-то импортируется и избежать дублированного импорта.

От X импорт Y: пример

Вот пример проблемы:

>>> from math import ceil, sqrt
>>> # here it would be
>>> sqrt(36)
<<< 6

Запустите код

Или мы могли бы использовать это вместо этого:

>>> import math
>>> # here it would be
>>> math.sqrt(36)
<<< 6

Запустите код

Тогда наш код будет выглядеть как math.sqrt (x) вместо SQRT (X) Отказ Это происходит потому, что когда мы используем Импорт х пространство имен х сам создан, чтобы избежать конфликтов имени. Вы должны получить доступ к каждому объекту модуля, как х. <имя> Отказ

Но когда мы используем от x Импорт y Мы согласны добавить y к главному глобальному пространству имен. Поэтому, используя это, мы должны убедиться, что у нас нет объекта с тем же именем в нашей программе.

Никогда не используйте от X импорт Y Если объект имени y уже существует

Например, в ОС Модуль Есть метод открыть Отказ Но у нас даже есть встроенная функция под названием открыть Отказ Итак, здесь следует избегать использования От ОС Импорт Открыть Отказ

Мы даже можем использовать Форма X импорт * Это будет импортировать все методы, классы этого модуля к глобальному пространству имен программы. Это плохое программирование. Пожалуйста, избегайте этого.

В целом вы должны избегать от x Импорт y Просто из-за проблем это может привести к значительным программам. Например, вы никогда не знаете, захочет ли сотрудник программиста, который может захотеть создать новую функцию, которая происходит как имя одной из существующих функций. Вы также не знаете, будет ли Python изменит библиотеку, которую вы импортируете функции. Хотя эти проблемы не будут существовать так часто для сольных проектов, как указано ранее, это плохое программирование практики и следует избегать.