В моем текущем проекте требуется широкое использование битовых полей. Я нашел простой, функциональный recipe for bit a field class, но мне не хватало нескольких функций, поэтому я решил продлить его. Я только что добрался до внедрения __str__
и __repr__
, и я хочу убедиться, что я следую конвенции.Правильное использование Python __str__ и __repr__
__str__
должен быть неформальным и concice, поэтому я сделал это вернуть десятичное значение битового поля (т.е. str(bit field 11)
будет "3"
.
__repr__
должен быть официальным представлением объекта, так что я «ве сделал это вернуть фактическую битовую строку (т.е. repr(bit field 11)
будет "11"
).
по вашему мнению будет эта реализация соответствуют конвенции для str
и repr
?
Кроме того, я использовал функцию bin()
для получения битовой строки значения, хранящегося в классе. Это несовместимо с Python < 2.6, есть ли альтернативный метод?
Приветствия,
Пит
Доступны битовые полевые модули, такие как bitstring, bitarray и bitvector (проверка на PyPi). Возможно, стоит проверить их, если вы не хотите изобретать велосипед. –
Я знаю, что я изобретаю колесо здесь, но я делаю этот проект для удовольствия, и это как-то не нравится использовать код, который кто-то написал в этом контексте (глупый, я знаю!). – Peter