Исследование и декомпиляция [закрытого] байт-кода Python

Каждый ответ копирует данные и создает новый массив. Это не является строго необходимым и определенно НЕ то, что вы хотите делать, если ваши массивы достаточно велики. Создатели Java уже знали, что копии массивов расточительны, и именно поэтому они предоставили нам System.arrayCopy () для выполнения тех операций вне Java, когда это необходимо.

Вместо того, чтобы копировать ваши данные, рассмотрите возможность оставить их на месте и взять их там, где они есть. Копирование местоположений данных только потому, что программист хотел бы организовать их, не всегда целесообразно.

// I have arrayA and arrayB; would like to treat them as concatenated
// but leave my damn bytes where they are!
Object accessElement ( int index ) {
     if ( index < 0 ) throw new ArrayIndexOutOfBoundsException(...);
     // is reading from the head part?
     if ( index < arrayA.length )
          return arrayA[ index ];
     // is reading from the tail part?
     if ( index < ( arrayA.length + arrayB.length ) )
          return arrayB[ index - arrayA.length ];
     throw new ArrayIndexOutOfBoundsException(...); // index too large
}
18
задан Otto Allmendinger 9 July 2012 в 18:23
поделиться

2 ответа

UnPyc

http://sourceforge.net/projects/unpyc/

Это поддерживаемый форк старого декомпилятора, обновленный для работы с 2.5 и 2.6.

6
ответ дан 30 November 2019 в 09:03
поделиться

decopyle

Decompyle - это дизассемблер Python и декомпилятор, конвертирующий Python байт-код (.pyc или .pyo) обратно в эквивалентный источник Python. Проверка произведенного кода (перекомпилированного) также доступны.

2
ответ дан 30 November 2019 в 09:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: