我试图将一些函数放在一起,并为此尝试了一个 Python 数据类。我无法想出或找到如何为数据类中的函数分配类型。
在下面的示例中,我使用了一个虚拟类型int,但是我应该正确使用而不是int?
from dataclasses import dataclass
inc = lambda x : x+1
@dataclass
class Holder:
func: int # but I need a better type signature here
h = Holder(inc)
assert h.func(1) == 2
Run Code Online (Sandbox Code Playgroud)
你应该使用 Callable类型
from typing import Callable
@dataclass
class Holder:
func: Callable[[int], int]
Run Code Online (Sandbox Code Playgroud)