Иерархия типов Python NamedTuple - PullRequest
0 голосов
/ 07 мая 2018

Я генерирую последовательности простых команд в Python, и команды имеют различное количество полей bool, float и int с различными именами.

Я представляю их как классы NamedTuple, например, команда перемещения -

class G1(NamedTuple):
    """
    Move command with speed in mm/s
    """
    x: float = None
    y: float = None
    z: float = None
    speed: float = None
    absolute: bool = True

Это все конкретные примеры Gcodes, который является названием языка команд, поэтому я хотел бы иметь тип с именем Gcode, где issubclass(G1, Gcode) == True. Затем я мог бы напечатать подсказку для различных функций как List[Gcode] и описать некоторые методы, которые должны быть общими для всех G-кодов.

Я пытался просто определить

class Gcode(NamedTuple):
    pass
class G1(Gcode):
    x: float = None
    ...

Однако конструкторы G1 больше не работают должным образом.

Извините, если это дубликат, мне не повезло в поиске, потому что есть много вопросов о создании подклассов NamedTuples для добавления полей к ним, а это не то, что я пытаюсь сделать.

...