FlatBuffers:如何在Python中生成name()方法

时间:2018-12-06 08:02:59

标签: python flatbuffers

在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

如何在python中生成name()方法?

换句话说,如何在python中获取枚举名称?

1 个答案:

答案 0 :(得分:0)

如果班级中有一堆成员,则可以dir()上班并获得成员。您可能想要过滤以__开头的内容。然后,您可以创建class[member_name]的映射,其中member_name是您想要的。