Python 2 показывает, трудно преобразовать 'str' в int - PullRequest
0 голосов
/ 30 сентября 2019

Здравствуйте, у меня есть следующая строка кода.

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

Есть идеи?

...