Продолжительность значений переменных и ссылок на переменные - PullRequest
0 голосов
/ 18 июня 2020

У меня вопрос относительно продолжительности значения однажды объявленной переменной. Я встретил функцию ниже:

def func(a, b):
    print(a)
    c = a[0]
    a[0][0] = 5  
    print(a)
    print(c)

    b.append(c)
    b[1][1] = 8
    b.append([6,7])

first = [[3, 4]]
second = [[1,2]]

func(first, second)
print(first[0])
print(second[2])

Меня смущают первые шесть строк функции, когда я вызываю функцию с помощью a = [[3,4]], затем c = [3,4]. Но когда я меняю первое значение первого элемента списка в a на 5 с помощью a[0][0] = 5, почему c берет ссылку из a = [[5,4]] вместо значения a = [[3,4]]], которое уже было присвоено до a[0][0] = 5?

Дополнительно:

a = True
b = not a
a = False
print(a)  # prints False
print(b)  # prints False

Почему значение a в этом случае изменяется на False, а значение b остается как False?


...