比较IronPython中的枚举值
本文关键字:枚举 IronPython 比较 | 更新日期: 2023-09-27 18:28:23
在IronPython脚本中,我试图将对象(在C#中创建)的属性(类型为Grade
)与Grade
枚举的一个可能值进行比较。例如:
if (myObject.TotalGrade == Grade.Fail):
现在,在获得这两个值后,我设置了一个断点,并且我确实可以验证它们都持有"Fail";但是,检查失败,程序进入下一个子句。python相等运算符是否不适用于C#枚举?
附加信息:我已经从C#导入了Grade
枚举,如下所示。
import clr
clr.AddReferenceToFile("mydll.dll")
from mydll import Grade
根据请求,我的评论作为回答:
我不知道为什么它们不能比较相等,但显然枚举在IronPython中是作为装箱类型实现的——在这种情况下,似乎有两个不同的对象用于相同的枚举值。
你可以通过直接比较基本值来解决这个问题,如下所示:
if myObject.TotalGrade.value__ == Grade.Fail.value__:
pass # your code here...