Я прохожу курс по изучению Python, и они дали мне упражнение, чтобы узнать, каков будет результат, вот он
a = 10
b = 20
c = a
b = c
a = b
print(a,b,c)
Теперь я думал, что значение будет 0, 20,0. Я подумал о 0, потому что C не имеет значения и будет назначен памятью, но если бы он действительно это сделал, он был бы другим, чем 0. Я запутался с C, но результат был 10,10,10.Я запустил программу и, ища ответ, попал к другому вопросу, где человек использовал функцию dis и, используя эту функцию, чтобы увидеть, что делает программа, дал мне
4 0 LOAD_CONST 1 (10)
2 STORE_FAST 0 (a)
5 4 LOAD_CONST 2 (20)
6 STORE_FAST 1 (b)
6 8 LOAD_FAST 0 (a)
10 STORE_FAST 2 (c)
7 12 LOAD_FAST 2 (c)
14 STORE_FAST 1 (b)
8 16 LOAD_FAST 1 (b)
18 STORE_FAST 0 (a)
10 20 LOAD_FAST 0 (a)
22 LOAD_FAST 1 (b)
24 LOAD_FAST 2 (c)
26 BUILD_TUPLE 3
28 RETURN_VALUE
Теперь, в вопросе, который я видел, ответ содержал слово ROT_TWO , но в этом есть только LOAD , STORE и RETURN.В другом вопросе было только две переменные, но я думал, что они все равно повернут их и выведут это слово.Я до сих пор не знаю, что делает программа и почему значение результата было 10,10,10.
Вот код, который я написал с использованием функции dis .
from dis import dis
def value(a,b,c):
a = 10
b = 20
c = a
b = c
a = b
return a,b,c
dis(value)