我最近开始使用dataclasses,它们将成为3.7中的一个不错的新功能。我想知道是否有可能以及如何使用dataclasses重新创建具有相同功能的类。
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__()缺少1个必需的位置参数:"submenus"
@dataclass
class Nav(object):
name:str
menu: Any
page: Any
submenus: tuple
foo = Nav("name", "menu", "page")
我认为这是因为类没有指令来解包参数。 有没有办法告诉dataclass装饰器需要解包子菜单?
Iterable
。我也会使用它来代替List
。 - Jared Smith