Answer
t.me/python_tesstОтвет:
5 0 LOAD_GLOBAL 0 (len)
2 LOAD_FAST 0 (word)
4 CALL_FUNCTION 1
6 STORE_FAST 1 (len_word)
6 8 LOAD_GLOBAL 1 (print)
10 LOAD_FAST 1 (len_word)
12 CALL_FUNCTION 1
14 POP_TOP
16 LOAD_CONST 0 (None)
18 RETURN_VALUE
Объяснение:
Дизассемблирование особенно эффективно, когда дело доходит до оптимизации. Оно позволяет более отчетливо увидеть все множество инструкций, используемых в каждой строке кода. Этот шаг дает все необходимое для оценки возможности улучшения быстродействия каждого конкретного фрагмента кода. Дизассемблирование можно выполнить с помощью модуля Python dis
. Мы импортировали модуль dis
, после чего вызвали метод dis()
для дизассемблирования my_very_special_function
. Помните, что не нужно включать круглые скобки. Эту функцию мы не вызываем. Разберем, что этот вывод из себя представляет:
- Первый столбец: соответствующий номер строки в коде;
- Второй столбец: соответствующий байтовый индекс;
- Третий столбец:
opname
, понятное человеку имя операции; - Четвертый столбец: аргумент инструкции;
- Пятый столбец: понятный человеку аргумент инструкции.
Помимо этого, дизассемблировать можно не только функции, но и классы. А вызов модуля в качестве аргумента командной строки (-m dis
) позволяет дизассемблировать вообще весь код.
Код:
import dis def my_very_special_function(word): len_word = len(word) print(len_word) dis.dis(my_very_special_function)