Недавно я начал использовать классы данных, и они станут хорошим дополнением к версии 3.7. Мне любопытно, возможно ли воссоздать ту же функциональность этого класса, используя классы данных.
class Nav(object):
def __init__(self, name:str, menu, page, *submenus):
self.name = name
self.menu = menu
self.page = page
self.submenus = submenus
foo = Nav("name", "menu", "page")
Это не работает. Вызывает исключение TypeError: __init__() missing 1 required positional argument: 'submenus'
@dataclass
class Nav(object):
name:str
menu: Any
page: Any
submenus: tuple
foo = Nav("name", "menu", "page")
Я предполагаю, что это связано с тем, что у класса нет инструкций для распаковки аргументов. Есть ли способ указать декоратору класса данных, что подменю необходимо распаковать?
Iterable
. Я бы тоже использовал это вместоList
. - person Jared Smith   schedule 08.06.2018