【发布时间】:2022-11-04 23:42:13
【问题描述】:
有没有一种pythonic方法来限制方法的输出,使其只能是一组中的一个?有点像打字,但仅限于特定值。我希望你能看到我想用这个 sn-p 得到什么:
class Rule:
def evaluate(self, user_id: int) -> {"PASS", "FAIL", "ERROR"}:
...
在上述情况下,我希望评估只返回“PASS”、“FAIL”或“ERROR”
【问题讨论】:
有没有一种pythonic方法来限制方法的输出,使其只能是一组中的一个?有点像打字,但仅限于特定值。我希望你能看到我想用这个 sn-p 得到什么:
class Rule:
def evaluate(self, user_id: int) -> {"PASS", "FAIL", "ERROR"}:
...
在上述情况下,我希望评估只返回“PASS”、“FAIL”或“ERROR”
【问题讨论】:
在 python 3.8 或更高版本中,您可以使用Literal types:
from typing import Literal
class Rule:
def evaluate(self, user_id: int) -> Literal["PASS", "FAIL", "ERROR"]:
...
【讨论】:
您可以创建一个包含所有描述的单独类,并在编码时将其添加为参数。我建议您观看一些有关如何创建类的 youtube 视频,也许您可以尝试实现它。
【讨论】: