Додавання функціональності до пакетів

Принципи Software Engineering у Python

Adam Spannbauer

Machine Learning Engineer at Eastman

Структура пакета

Структура пакета

Принципи Software Engineering у Python

Додавання функціональності

працюємо в work_dir/my_package/utils.py

def we_need_to_talk(break_up=False):
    """Helper for communicating with significant other"""
    if break_up:
        print("It's not you, it's me...")
    else:
        print('I <3 U!')

працюємо в work_dir/my_script.py

# Import utils submodule
import my_package.utils

# Decide to start seeing other people
my_package.utils.we_need_to_talk(break_up=True)
It's not you, it's me...
Принципи Software Engineering у Python

Імпортування функціональності через __init__.py

працюємо в work_dir/my_package/__init__.py

from .utils import we_need_to_talk

працюємо в work_dir/my_script.py

# Import custom package
import my_package

# Realize you're with your soulmate
my_package.we_need_to_talk(break_up=False)
I <3 U!
Принципи Software Engineering у Python

Розширення структури пакета

Розширена структура пакета

Принципи Software Engineering у Python

Розширення структури пакета

Структура підпакета

Принципи Software Engineering у Python

Давайте потренуємось!

Принципи Software Engineering у Python

Preparing Video For Download...