如何使用一组特定的值在 Python 中输入

问题描述

我需要指定一组特定的值作为我函数的预期返回类型。假设定义了一个名为 Scene 的类,它具有属性 name,它应该是一个只能以 "1K""2K""4K" 结尾的字符串.现在我想编写一个函数,该函数将此类作为参数并将其名称的最后 2 个字符作为字符串返回。有没有办法使用 Python 3.7.7 中的内置模块来指定此函数返回类型,例如一组精确的字符串值?像这样:

def scene_resolution(sc : Scene): -> any value in {'1K','2K','4K'}: # return type?
    res = sc.name[-2:]
    assert res in {'1K','4K'}
    return res

我知道使用 Literal from typing_extensions,但不幸的是它只适用于 Python 3.8 及更高版本,而我正在处理的软件的 API 使用 Python 3.7.7。我也试过用 enum.Enum 做一些事情,但无法正常工作。

您有什么建议吗?

UPD。 到目前为止,我发现的唯一方法是定义一些函数来返回我需要的集合并将其名称用作预期的返回类型。不确定这是否是正确的方法和良好的做法,但至少它有效。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)