在一個IronPython腳本中,我試圖比較一個對象(用C#創建)的屬性(類型爲Grade
)與Grade
enum的其中一個可能值。因此,例如:比較IronPython中的枚舉值
if (myObject.TotalGrade == Grade.Fail):
現在,我已經得到這兩個值後,設置斷點,我確實可以驗證他們兩人舉行「失敗」;但是,檢查失敗並且程序轉到下一個子句。 python相等運算符不適合C#枚舉嗎?
附加信息:我已經從我的C#導入了Grade
枚舉,如下所示。
import clr
clr.AddReferenceToFile("mydll.dll")
from mydll import Grade
不知道爲什麼他們會不會比較相等,但顯然枚舉的[實現爲盒裝類型(HTTP://名單IronPython中的.ironpython.com/pipermail/users-ironpython.com/2005-August/000915.html) - 對於相同的枚舉值,您似乎有兩個不同的對象。你可以通過直接通過'myObject.TotalGrade.value__ == Grade.Fail.value__'比較基礎值來解決這個問題。 – Cameron 2014-10-29 18:28:02
@Cameron哇,我不知道你是怎麼發現的,但是人是那種無價的電子郵件交換。感謝解決這個謎。你能發表你的評論作爲答案,所以我可以接受它嗎? – estebro 2014-10-29 19:12:05
添加了答案。至於郵件列表,我只是圍繞IronPython枚舉搜索一下;-) – Cameron 2014-10-29 19:52:20