FlatBuffers: как создать метод name () в Python - PullRequest
0 голосов
/ 06 декабря 2018

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

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

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

, так же как и в c ++

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)]; }

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

class ResultCode(object):

    SUCCESS = 0

    TIME_OUT = 1

    UNKNOWN_ERROR = 2

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

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

1 Ответ

0 голосов
/ 15 февраля 2019

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

...