03.27 Стиль программирования, комментарии и строки документации
- Про стиль оформления в частности, и вообще дисциплину программирования
Установка и использование flake8
Настройка .flake8 (в частности, длины строк)
Пользуясь документацией разрешить from math import * и последующее использование sin()
Установка и использование pydocstyle
Найти документацию и настроить config так, чтобы pydocstyle не ругался на отсутствие точки в конце и вот это своё «First line should be in imperative mood» не писал
- Про пакеты (введение)
Пакет — это каталог с .py-файлом (вложенные каталоги — подпакеты вида пакет.подпакет)
Если в нём есть __init__.py, он выполняется при import-е
(есть ещё костыли для import *, но подождут до лекции)
Если в нём есть __main__.py, он выполняется при python3 -m пакет
Если нужно импортировать из «соседнего» подпакета:
from . import сосед
from .сосед import символ_соседа
from .. import сосед этажом ниже
- … и т. д.
создать пакет basepkg с двумя подпакетами: main, lib (пакеты — это подкаталоги)
В lib содержится единственная функция output(), полностью совпадающая с print()
Подпакет main можно запускать с помощью python3 -m base.main, и он выводит собственную строку документации при помощи lib.output().
Подсказка: __doc__
Д/З
Пример репозитория, соответствующего требованиям
Задача_1: MUD messaging
Скопируйте решение Задачи_1 с предыдущего занятия. Сделайте коммит. Работайте на ветке work.
- Задайтесь вопросом: если MUD теперь многопользовательский, как пользователи (приключенцы) будут кооперироваться, чтобы вынести особо крутого монстра?
- Спойлер: нужен чат
- Реализуйте команду для передачи сообщения всем игрокам
Синтаксис: sayall <строка>, где <строка> - либо одно слово (без пробельных символов), либо строка в кавычках
- Примеры:
sayall PREVED
sayall "Let's attack dragon at 5 9"
Сервер транслирует строку всем с указанием имени пользователя-источника. Пример: kobold702: Let's attack dragon at 5 9
Задача_2: MUDуляризация, применение flake8 и pydocstyle
Скопируйте решение Задачи_1. Сделайте коммит. Работайте на ветке work.
Оформите MUD в виде двух пакетов: клиент (moodclient), сервер (moodserver)
- В силу cowsay-ориентированности, наш MUD обрёл официальное название - MOOD
Запуск для пакета — в __main__.py
Добейтесь полного отсутствия претензий со стороны flake8 и pydocstyle к содержимому пакетов
- Разрешается настраивать ☺