python - 如何在 Python 中包装返回位掩码的函数

标签 python c api bitmask

考虑 C 函数 int get_events(),它返回以下事件的位掩码:

#define EVENT_KEY_DOWN    1
#define EVENT_KEY_UP      2
#define EVENT_KEY_PRESS   4

它可以返回 5,例如,这意味着 EVENT_KEY_DOWNEVENT_KEY_PRESS 都被触发了。

我想到了以下方法将函数的值返回给 Python 代码:

  • “按原样”,即 5
  • 整数元组:(1, 4)
  • 一个字符串元组:('EVENT_KEY_DOWN', 'EVENT_KEY_PRESS')

(在所有情况下,我也可以声明常量,例如 mymodule.EVENT_KEY_DOWNmymodule.EVENT_KEY_PRESS。)

有什么“推荐”的方式吗?

最佳答案

Sparse is better than dense; readability counts .我会根据该逻辑选择字符串元组,但也会查看您将如何使用 API 的模式。例如,如果您处于性能关键代码路径中,则应考虑将其保留为位掩码。

关于python - 如何在 Python 中包装返回位掩码的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28834532/

相关文章:

c# - 使用 Microsoft Live 作为 ASP.NET 应用程序的 OpenID 选项

python - Python 中具有 nan 值的数组之间的平均值

python - 如何为返回巨大稀疏矩阵的函数编写Python单元测试

与 C 中的 sqrt() 函数混淆

c# - 在 C# 中解析 Json rest api 响应

python - 如何使用 oauth2 为网站构建 Python 爬虫

python - 如何在 python 中显示非英文字符?

python - 在 Python 中解析 .ics 文件中的事件

c - Unix信号量问题

c - 运行时检查失败 #2 - 变量 'd' 周围的堆栈已损坏。 (Visual Studio下的C编程)