FlatBuffers: как создать метод name() в Python

В Java FlatBuffers сгенерирует метод name() для перечислений, что очень полезно.

  public static final String[] names = { "SUCCESS", "TIME_OUT", "UNKNOWN_ERROR", };

  public static String name(int e) { return names[e]; }

так же и в с ++

inline const char **EnumNamesResultCode() {

  static const char *names[] = { "SUCCESS", "TIME_OUT", "UNKNOWN_ERROR", nullptr };

  return names;

}

inline const char *EnumNameResultCode(ResultCode e) { return EnumNamesResultCode()[static_cast<int>(e)]; }

но в питоне такого метода нет. он просто генерирует чистый класс с некоторыми константами.

class ResultCode(object):

    SUCCESS = 0

    TIME_OUT = 1

    UNKNOWN_ERROR = 2

Как генерировать метод name() в Python?

Другими словами, как я могу получить имена перечислений в Python?

1 ответ

Если у класса есть группа участников, вы можете dir() класс и получить членов. Вы, вероятно, хотите отфильтровать вещи, которые начинаются с __, Затем вы можете создать отображение class[member_name] где member_name это то, что вы хотите.

Другие вопросы по тегам