【问题标题】:Pythonnet trouble with enum containing "None"包含“无”的枚举的 Pythonnet 问题
【发布时间】:2021-06-06 17:21:24
【问题描述】:

我正在使用 pythonnet 处理具有以下枚举(来自 doc)的 C# dll:

 public enum DownloadOptions {
 None = 0, // Download nothing
 Hardware, // Download hardware only 
 Software // Download software only
 }

打印“硬件”和“软件”给我“1”和“2”,而打印“无”我得到语法错误。将“1”或“2”传递给需要此枚举的 C# 函数也可以正常工作,但不接受“0”。

我的感觉是“None”这个名字在这里造成了麻烦,因为它是一个保留的python关键字。

有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: python enums python.net


    【解决方案1】:

    当我遇到同样的问题时,我刚刚找到了解决方案 当我在python中使用NationalInstruments.VisaNS.dll时,我必须访问NationalInstruments.VisaNS.Parity中的枚举None,如果使用NationalInstruments.VisaNS.Parity.None总是得到SyntaxError: invalid syntax,所以我将搜索关键字更改为“pythonnet enum None”并找到了这个answer,它解决了我的问题。 所以比较一下

    NationalInstruments.VisaNS.Parity.None
    

    使用

    getattr(NationalInstruments.VisaNS.Parity,'None')
    

    改为。

    【讨论】:

      猜你喜欢
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 2023-03-23
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多