под капотом оценки выражения с использованием отладчика python? - PullRequest
0 голосов
/ 26 апреля 2020

Я написал выражение в python, которое сначала было правильно оценено в соответствии с моими входными данными.

def compare(data):
    return(["Senior" if age >= 55 & hand > 7 else "Open" for age, hand in data])
print(compare([[49, 5], [59, 8], [61, 5], [75, 11], [38, 6]]))

Но при тестировании с более производимыми данными я увидел некоторые ошибки в оценке. Проведя несколько экспериментов, я обнаружил, что ошибка возвращает приоритет оператора в выражении. На самом деле настоящий код выглядит так:

def compare(data):
    return(["Senior" if (age >= 55) & (hand > 7) else "Open" for age, hand in data])

Я хочу найти способ, используя python отладчик или другой инструмент, чтобы взломать выражение и посмотреть, что происходит под капотом. Я использую VS Code для отладки. Единственный способ, который я нашел, это добавить выражение в список просмотра. Он оценивает все выражение, но я хочу знать, как python оценивает выражение и в каком порядке выполняет операторы, точно так же, как стек вызовов с использованием отладчика.

...