Здравствуйте, у меня есть следующая строка кода.
self.data_bytes = rom_bytes [HEADER_SIZE:HEADER_SIZE + (16 + KB_SIZE * self.num_prg_blocks
, что на python 2.6 генерирует это сообщение об ошибке:
TypeError: неподдерживаемые типы операндов для +:'int' и 'str'
Такой код отлично работает на python 3, который, как я думаю, выполняет какое-то неявное преобразование, поскольку, когда я печатаю тип переменной, он говорит вместо python 2Однако, когда я пытаюсь сделать
int (self.num_prg_blocks))
, я получаю
ValueError: недопустимый литерал для int () с основанием 10: '\ x02'
затем я сделал
import struct
и попробовал этот код:
self.temp = self.header [4]
self.num_prg_blocks = struct.unpack ("h", self.temp)
, который сгенерировал:
struct.error: unpackтребуется строковый аргумент длиной 2
Есть идеи?