Код: Выделить всё
import typing as t
from dataclasses import dataclass
class Proxy(t.Generic[C]):
def __init__(self, obj: C):
self.obj = obj
def __getattr__(self, name: str) -> t.Any:
return getattr(self.obj, name)
@dataclass
class Data:
foo: int
pd = Proxy(Data(42))
pd.foo # this types
pd.oof # this types too, but it should not
EDIT: важная часть что прокси-класс должен быть универсальным; для одного случая доступно несколько подходов, предложенных в комментариях.
Подробнее здесь: https://stackoverflow.com/questions/791 ... roxy-class
Мобильная версия