【问题标题】:How would I constrain a method to only return one of a set of specific values in python?我将如何限制一个方法只返回 python 中一组特定值中的一个?
【发布时间】:2022-11-04 23:42:13
【问题描述】:

有没有一种pythonic方法来限制方法的输出,使其只能是一组中的一个?有点像打字,但仅限于特定值。我希望你能看到我想用这个 sn-p 得到什么:

class Rule:
    def evaluate(self, user_id: int) -> {"PASS", "FAIL", "ERROR"}:
        ...

在上述情况下,我希望评估只返回“PASS”、“FAIL”或“ERROR”

【问题讨论】:

    标签: python methods typing


    【解决方案1】:

    在 python 3.8 或更高版本中,您可以使用Literal types

    from typing import Literal
    
    class Rule:
        def evaluate(self, user_id: int) -> Literal["PASS", "FAIL", "ERROR"]:
            ...
    

    【讨论】:

      【解决方案2】:

      您可以创建一个包含所有描述的单独类,并在编码时将其添加为参数。我建议您观看一些有关如何创建类的 youtube 视频,也许您可​​以尝试实现它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-01
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 2018-08-05
        相关资源
        最近更新 更多