Как можно запретить добавлять новые поля (кроме x и y в примере)?
class MyDTO:
x: int
y: str
def __init__(self, **kwa):
self.__dict__.update(kwa)
def __repr__(self):
return str(self.__dict__)
dto = MyDTO(x=2, z='22') # хотелось бы, чтобы интерпретатор не допустил z из-за отсуствия ее в явно выписанных полях
print(dto) # {'x': 2, 'z': '22'}
Делать
__init__ (self, x: int, y: str)