Я только что обнаружил в определении переменных в Python. А именно:Python: «Цепное определение» для ints vs lists
a = b = 0
a = 1
дает мне a=1
и b=0
или б две независимые переменные.
Но:
a = b = []
a.append(0)
дает мне a = [0]
и b = [0]
, или а и Ъ две ссылки на тот же объект. Это меня смущает, как эти два случая различны? Это потому, что int
являются примитивными типами или потому, что списки - это просто указатели?
2 операции различны. В первом случае вы назначаете новое значение a, а во втором - изменяете объект, на который указывает ... –
Тестирование несовместимо. Попробуйте 'a = b = []; a = [1, 2, 3] ' – thefourtheye
Релевантное видео: [Факты и мифы о именах и значениях Python] (https://www.youtube.com/watch?v=_AEJHKGk9ns) –