DEV Community

Cover image for Імпорт
Григорій Лізанець
Григорій Лізанець

Posted on • Edited on

Імпорт

Модуль - це практично будь який файл .py, який містить функції чи класи, а не тільки скрипти. Коли ми працюємо з реальними об'єктами, бажано розділяти наші функції та класи на різні модулі, щоб їх можна було регулювати та використовувати повторно.

Image description

Top comments (5)

Collapse
 
gr555 profile image
Григорій Лізанець • Edited

Деякі правила імпортів, згідно PEP-8, які можливо, можуть пройти непомітно на перших етапах вивчення Python:

import json
import os
import sys
from my_lib import abc
from my_lib import bcd
Enter fullscreen mode Exit fullscreen mode

Імпроти мають бути відсортовані по алфавіту і знаходитися на початку модуля!
Спочатку стандартні, а нижче - імпорти власних бібліотек.

Collapse
 
gr555 profile image
Григорій Лізанець • Edited

Коли в модулі присутня постороння бізнес-логіка, окрім потрібних функцій, констант чи класів - її треба ізолювати в main функцію:

def main():
    # here is those logic


if __name__ == '__main__':
    main()
Enter fullscreen mode Exit fullscreen mode

Інакше вона буде виконуватися кожен раз при кожному імпорті в другий файл. А якщо код знаходиться в функції main, то він виконається лише при умові, що файл запуститься, як основний .

Collapse
 
gr555 profile image
Григорій Лізанець • Edited

sys.path - це набір директорій, де Python шукає модулі, які треба імпортувати. Пошук проводиться з дотриманням чіткої ієрархії папок з модулями. sys.path подається у вигляді списку.

Collapse
 
gr555 profile image
Григорій Лізанець

relative import (Відносний імпорт) використовується переважно для імпорту в середині пакета.

Collapse
 
gr555 profile image
Григорій Лізанець • Edited

По суті пакети (packages) - це звичайні папки у файловій системі. В цих папках набір модулів (файлів) .py, які логічно інкапсульовані в одне ціле, як пакет.