【发布时间】:2010-05-11 17:06:28
【问题描述】:
我当前的项目需要大量使用位域。我找到了一个简单、实用的recipe for bit a field class,但它缺少一些我需要的功能,所以我决定扩展它。我刚刚实施了__str__ 和__repr__,我想确保我遵守约定。
__str__ 应该是非正式的和简洁的,所以我让它返回位字段的十进制值(即str(bit field 11) 将是"3"。
__repr__ 应该是对象的官方表示,所以我让它返回实际的位字符串(即repr(bit field 11) 将是"11")。
您认为此实现是否符合str 和repr 的约定?
另外,我使用了bin() 函数来获取存储在类中的值的位串。这与 Python
干杯,
皮特
【问题讨论】:
-
有可用的位域模块,例如 bitstring、bitarray 和 bitvector(检查 PyPi)。如果您不想重新发明轮子,可能值得一试。
-
我知道我在这里重新发明轮子,但我做这个项目是为了好玩,而且使用其他人在这种情况下编写的代码令人不满意(我知道很傻!)。跨度>
标签: python bit-manipulation conventions representation