在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中获取枚举名称?
答案 0 :(得分:0)
如果班级中有一堆成员,则可以dir()
上班并获得成员。您可能想要过滤以__
开头的内容。然后,您可以创建class[member_name]
的映射,其中member_name
是您想要的。