dataclass假设你想像这样包装装饰器:
from dataclasses import dataclass
def something_else(klass):
return klass
def my_dataclass(klass):
return something_else(dataclass(klass))
Run Code Online (Sandbox Code Playgroud)
应该如何my_dataclass和/或something_else注释以指示返回类型是数据类?请参阅以下示例,了解内置函数如何@dataclass工作但自定义函数@my_dataclass则不然:
@dataclass
class TestA:
a: int
b: str
TestA(0, "") # fine
@my_dataclass
class TestB:
a: int
b: str
TestB(0, "") # error: Too many arguments for "TestB" (from mypy)
Run Code Online (Sandbox Code Playgroud)