1. ProgrammingPythonЧто такое модуль Python?

Алан Шович, Джон Шович

Для всего шумихи о модулях Python, модуль на самом деле довольно простая вещь. Фактически, модуль Python - это просто файл с расширением .py, содержащий код Python. Это оно. Поэтому каждый раз, когда вы пишете код Python и сохраняете его в файле .py, вы в основном создаете модуль.

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

программирование модулей Python

Модуль Python - это также просто файл с расширением .py. Имя модуля совпадает с именем файла (без .py). Как и любой файл .py, модуль содержит код Python. В качестве рабочего примера предположим, что вы хотите иметь три функции для упрощения форматирования дат и значений валют. Вы можете придумать любое имя для каждой функции. Для нашего рабочего примера мы будем использовать эти три имени:

  • to_date (any_str): позволяет передавать любую строковую (any_str) дату в формате мм / дд / гг или мм / дд / гггг и отправляет обратно Python datetime.date, который вы можете использовать для вычисления даты. mdy (any_date): позволяет передать любую дату или дату Python и вернуть строковую дату в формате мм / дд / гггг для отображения на экране. to_curr (any_num, len): позволяет передать любое число с плавающей запятой Python или целое число и вернуть строку с начальным знаком доллара, запятыми в тысячах мест и двумя цифрами для пенни. Len является необязательным числом для длины. Если предоставлено, возвращаемое значение будет дополнено слева пробелами, чтобы соответствовать указанной длине

Итак, вот весь код для этого:

# Содержит пользовательские функции для дат и значений валюты.
импортировать дату и время как DT
def to_date (any_str):
"" "Преобразовать строку мм / дд / гг или мм / дд / гггг в datetime.date или None, если недействительная дата." ""
пытаться:
if len (any_str) == 10:
the_date = dt.datetime.strptime (any_str, '% m /% d /% Y'). date ()
еще:
the_date = dt.datetime.strptime (any_str, '% m /% d /% y'). date ()
кроме (ValueError, TypeError):
the_date = Нет
вернуть дату
def mdy (any_date):
"" "Возвращает строковую дату в формате мм / дд / гггг. Передача в формате Python или строковую дату в формате мм / дд / гггг" ""
if type (any_date) == str:
any_date = to_date (anydate)
# Убедитесь, что отправляется дата
if isinstance (any_date, dt.date):
s_date = f "{any_date: '% m /% d /% Y'}"
еще:
s_date = "Неверная дата"
вернуть s_date
def to_curr (anynum, len = 0):
"" "Возвращает число в виде строки с $ и запятыми. Длина не обязательна" ""
s = "Неверное количество"
пытаться:
x = float (anynum)
кроме ValueError:
х = нет
если isinstance (x, float):
s = '$' + f "{x:,. 2f}"
если len> 0:
s = s.rjust (LEN)
возврат с

Вы можете создать тот же файл самостоятельно и назвать его myfunctions.py, если хотите следовать. Обратите внимание, что файл содержит только функции. Поэтому, если вы запустите его, он ничего не сделает на экране, потому что там нет кода, который бы вызывал какую-либо из этих функций.

Чтобы использовать эти функции в любом приложении или программе Python, которую вы пишете, сначала убедитесь, что вы скопировали этот файл myfunc.py в ту же папку, что и остальная часть кода Python, который вы пишете. Затем, когда вы создаете новую страницу, вы можете импортировать myfunc как модуль так же, как любой другой модуль, созданный кем-то другим. Просто используйте

импортировать myfunc

Вам нужно будет использовать имя модуля перед любой из функций, которые вы вызываете из этого модуля. Так что если вы хотите сделать код немного более читабельным, вы можете использовать это вместо этого:

импортировать myfunc как мой

Принимая это как начальную строку, вы можете ссылаться на любую функцию в вашем пользовательском модуле Python с помощью my. в качестве префикса. Например, my.to_date () для вызова функции to_date. Вот страница, которая импортирует модуль и затем тестирует все три функции, используя мой синтаксис:

# Импортировать весь код из myfunc.py как мой.
импортировать myfunc как мой
# Нужны даты в этом коде
из даты и времени импорт
# Некоторые простые тестовые данные.
string_date = "12/31/2019"
# Конвертировать строковую дату в datetime.date
печать (my.to_date (string_date))
today = dt.today ()
# Показать сегодняшнюю дату в формате мм / дд / гггг.
печать (my.mdy (сегодня))
dollar_amt = 12345.678
# Показать это большое число в формате валюты.
печать (my.to_curr (dollar_amt))

Вы также можете пропустить, используя префикс, если вы импортируете элементы по имени. В этом случае это означает, что вы можете вызывать to_date () и mdy () и to_curr () без использования my. приставка. Первая строка кода должна быть

из myfunc импорт to_date, mdy, to_curr

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

# Импортировать весь код из myfunc.py по имени.
из myfunc импорт to_date, mdy, to_curr
# Нужны даты в этом коде
из даты и времени импорт
# Некоторые простые тестовые данные.
string_date = "12/31/2019"
# Конвертировать строковую дату в datetime.date
печать (to_date (string_date))
today = dt.today ()
# Показать сегодняшнюю дату в формате мм / дд / гггг.
печать (МДГ (сегодня))
dollar_amt = 12345.678
# Показать это большое число в формате валюты.
печать (to_curr (dollar_amt))

Проверьте эти 10 удивительных ресурсов программирования Python для получения дополнительной информации.

Смотрите также

Плюсы и минусы дизельных двигателейКак начать автомобиль? Как определить, нуждается ли ваш автомобиль в настройке? Как устранить неполадки в каталитических нейтрализаторах? Как часто вы меняете масло? Как проверить уровень масла в вашем автомобиле? Как промыть систему охлаждения вашего автомобиля? Как сменить шину Как установить свечу зажиганияКак удалить старые свечи зажиганияКак проверить тормозные колодкиКак проверить дисковые тормозаКак заменить тормозную жидкостьОбщие методы устранения неисправностей FitbitШпаргалка для iPhone для чайниковСтатистика и гистограммыВыбор лучшего поставщика облачных услуг, функций и инструментов для DevOps. Почему DevOps имеет значение: 11 способов DevOps приносит пользу вашей организации: используйте больше облачных инструментов: автоматизация DevOps в CloudTips для повышения производительности проектирования с помощью DevOpsКак формировать команды DevOps в вашей организацииПеремещение к процессам DevOps: От линии к CircuitInterview Методы для создания команды DevOps: получение правильных технических навыков Непрерывная интеграция и непрерывная поставка: реализация и получение преимуществ от CI / CDTop 10 Подводные камни DevOps: почему ваши программные проекты терпят неудачу Что такое DevOps? DevOps For Dummies Полная стоимостьКак найти свои контакты в InstagramВыбор лучшего поставщика облачных услуг, функций и инструментов для DevOps