Я использую python.NET с C # API.DLL-файлы загружаются нормально, и я могу найти нужное мне перечисление, но не могу определить правильный синтаксис для доступа к его значениям, именам и описаниям.
Я не слишком знаком с C #, но думаю,перечисление что-то вроде
public enum Things
{
X1,
X2,
X3,
X4
}
, и я пытаюсь сделать эквивалент, например,
var values = Enum.GetValues(typeof(Things));
, хотя я также хочу получить доступ к именам и описаниям.Есть метод GetNames и метод Overloads, который, я думаю, может быть необходим для них.
Я застрял в синтаксисе, необходимом для использования несвязанных методов в python.Net.
In[1]: Things.GetNames
Out[1]: <unbound method 'GetNames'>
Я могу получить отдельные значения
In[2]: Things.X1
Out[2]: 21
, но мне бы очень хотелось понять, как правильно получить эту информацию - и описания, которые в настоящее время я не могу найти - с использованием Python.NET.
ETA: выяснил часть того, что я делаю неправильно.Могут получать значения и имена следующим образом:
from System import Enum
values = Enum.GetValues(Things)
names = Enum.GetNames(Things)
Вышеуказанное возвращает System.String [], но я могу перебирать их в списках, чтобы получить списки имен и значений.
, новсе еще не уверены, как получить описания.Не вижу никаких очевидных методов для этого.
In [17]:dir(Enum)
Out[17]:
['CompareTo',
'Equals',
'Finalize',
'Format',
'GetHashCode',
'GetName',
'GetNames',
'GetType',
'GetTypeCode',
'GetUnderlyingType',
'GetValues',
'HasFlag',
'IsDefined',
'MemberwiseClone',
'Overloads',
'Parse',
'ReferenceEquals',
'ToObject',
'ToString',
'TryParse',
'__call__',
'__class__',
'__delattr__',
'__delitem__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getitem__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__iter__',
'__le__',
'__lt__',
'__module__',
'__ne__',
'__new__',
'__overloads__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__setitem__',
'__sizeof__',
'__str__',
'__subclasshook__']