函数可以是 Python 数据类成员吗?

Evg*_*eny 3 python types

我试图将一些函数放在一起,并为此尝试了一个 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)

rda*_*das 6

你应该使用 Callable类型

from typing import Callable

@dataclass
class Holder:
  func: Callable[[int], int]
Run Code Online (Sandbox Code Playgroud)

  • 不是您的函数,但一般函数可能有多个参数,这就是类型提示的参数部分包含在“[]”中的原因 (3认同)