ikamensh / pydolons

Other
3 stars 0 forks source link

Весенняя уборка: типы данных в коде #26

Closed ikamensh closed 5 years ago

ikamensh commented 5 years ago

Для удобства в чтении кода и рефакторинге предлагаю добавить типизацию в ui.

чтобы избежать проблем с импортом, используй

from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
    import Unit, Battlefield, ...
reef425 commented 5 years ago

Решено. Типизация добавлена.

ikamensh commented 5 years ago

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

    def __init__(self, level: BaseLevel):
        super(GameVision, self).__init__()
        self.level = level

self.level имеет тип BaseLevel

ikamensh commented 5 years ago

Еще типы можно указывать в том числе внутри коллекций

    from typing import Dict
    def setWall(self, walls: Dict[Cell, Wall]):
ikamensh commented 5 years ago
    def create_slot(self, slot: Slot, width=128, height=128, space=10)->Element:
        pass

может стоит делать raise NotImplementedError()

ikamensh commented 5 years ago

Это issue можно закрыть. С типами стало намного легче ориентироваться в коде ui для меня. спасибо!