python-3.x - 从子类中的枚举返回值
问题描述
我想从子类中的 Enum 返回字符串值。我有这样的班级结构
Class1
|
|--subclass
| |
| |----Enum
现在我想从枚举中返回一个字符串值。
我知道如何返回值return str(self.value)
def __str__(self):
return str(self.value)
class GSSML:
class ProsodyAttributes:
class Rate(Enum):
def __srt__(self):
return self.value
x_slow = 'x-slow'
slow = 'slow'
medium = 'medium'
fast = 'fast'
x_fast = 'x-fast'
default = 'default'
还有我的测试代码
import gssml
def main():
ssml = gssml.GSSML()
print(ssml.ProsodyAttributes.Rate.x_fast)
if __name__ == '__main__':
main()
现在我希望它会回来x-fast
但我得到了Rate.x_fast
我不知道我做错了什么。请帮忙
解决方案
您的代码没有返回正确的值,因为您将 dunder 方法拼写__str__
错误__srt__
In [15]: from enum import Enum
...:
...: class GSSML:
...: class ProsodyAttributes:
...: class Rate(Enum):
...: def __str__(self):
...: return self.value
...: x_slow = 'x-slow'
...: slow = 'slow'
...: medium = 'medium'
...: fast = 'fast'
...: x_fast = 'x-fast'
...: default = 'default'
...:
...: ssml = GSSML()
...: print(ssml.ProsodyAttributes.Rate.x_fast)
x-fast
推荐阅读
- c++ - 是否有使用 Ceedling 框架的 g++ 编译器的“project.yml”示例?
- c# - Newtonsoft.Json - 需要帮助展平对象
- javascript - 页面重新渲染/更改后如何维护组件状态?
- javascript - 如何在js中调用对象时使用变量而不是静态
- npm - Github 操作脚本必须先安装 npm 才能安装软件包,而其他脚本不需要
- architecture - 开发 REST API 时何时使用垂直切片或清洁架构?
- excel - 通过 32 位 Oracle 客户端从 64 位 Excel 查询到 64 位 Oracle DB
- java - Java JIT 是否曾经优化递归方法调用?
- python - 如何将输入的分数相加以允许将总数除以“计数”以获得平均值?
- java - 我在 Visual Studio Code 中有一个带有下划线的视觉错误,我无法在任何地方引用它