Есть несколько способов и предположить, что ваша структура данных должна иметь только те же атрибуты, но они не используют dicts.
Вместо передачи dict
, вы можете использовать именованный кортеж.Используя namedtuple, вы можете рассматривать его как объект, но новые поля также не могут быть добавлены.
from collections import namedtuple
A = namedtuple("A", ["x", "y", "z"])
def get_x(d: A) -> int:
d.x
Другой способ - создать класс и использовать атрибут __slot__
.Это также позволяет избежать случайной вставки новых атрибутов.
class A:
__slot__ = ["x", "y", "z"]
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
Используя описанные выше методы, вы должны определить поля в самом начале.