Python技巧

来源:互联网 发布:maven实战源码下载 编辑:程序博客网 时间:2024/06/10 22:17

1. python中struct和union的代码 (参考 Does Python have a bitfield type?)

#!/usr/bin/env pythonimport ctypesc_uint8 = ctypes.c_uint8class Flags_bits(ctypes.Structure):    _fields_ = [            ("logout", c_uint8, 1),            ("userswitch", c_uint8, 1),            ("suspend", c_uint8, 1),            ("idle", c_uint8, 1),        ]class Flags(ctypes.Union):    _fields_ = [("b", Flags_bits),                ("asbyte", c_uint8)]flags = Flags()flags.asbyte = 0xcprint(flags.b.idle)print(flags.b.suspend)print(flags.b.userswitch)print(flags.b.logout)