首页 > 解决方案 > 如何定义给定函数的输入必须是类的变量(静态)

问题描述

我阅读了 PEP256并搜索了一些实现示例,但仍然对我想要实现的目标是否正确/可能感到困惑。

假设我有一个通用配置接口:

class Confs:
    All = 'all'
    Some = 'some'
    None = 'none'
    PI = 3.14159

它在整个库中使用。(注:我不想讨论为什么会这样使用)

现在让我们假设我将一个函数定义为:

def func(input, conf: <type> = Confs.None):
   pass

在上述签名中,对于所呈现的非常具体的实现,<type>str. (我的实际问题:)但是是否有一种通用且正确的方法来定义它?乍一看,我认为ClassVar这将是解决方案,例如:

def func(input, conf: ClassVar[Confs] = Confs.None):
   pass

但根据 PEP256,这是不正确的。

标签: python-3.xpython-typing

解决方案


推荐阅读