Прервать функцию Python и манипулировать переменными - PullRequest
0 голосов
/ 27 мая 2019

У меня есть файл main.py, содержащий код

def my_function():

    a = 0
    b = 1
    c = 2

if __name__ == "__main__":
    my_function()

Я выполняю этот скрипт из терминала / оболочки.

Если я запускаю скрипт с python -i main.py, все переменные уже пропали, потому что функция my_function вышла из области видимости.

Как мне прервать выполнение скрипта после команды a = 0 и установить a в значение 1?

EDIT Моя цель с этим вопросом - узнать, как я могу применить некоторые команды к переменным, которые являются результатом функции, даже после ее завершения. Таким образом, код, который я написал выше, является просто (минимально работающим) примером.

1 Ответ

1 голос
/ 27 мая 2019

Вы можете использовать Python-отладчик set_trace(), чтобы взломать отладчик из запущенной программы и манипулировать переменными. Используйте команду отладчика c (ont (inue)) , чтобы продолжить выполнение.

def my_function():

    a = 0
    import pdb
    pdb.set_trace()
    b = 1
    c = 2

if __name__ == "__main__":
    my_function()
...