다음과 같은 Python의 연결 할당:
x = y = somefunction()
는 순차적으로 실행되는 다음 두 문과 동일합니다.
temp = somefunction() x = temp y = temp
이는 대입 연산자의 오른쪽에 있는 식이 먼저 평가되고 결과 값이 모든 대입 연산자에 대입된다는 의미입니다. 변수는 왼쪽에서 오른쪽으로 왼쪽에 배치됩니다.
예를 들어 다음 코드는 숫자 10을 두 번 인쇄합니다.
def somefunction(): return 10 x = y = somefunction() print(x) print(y)
연결된 할당이 다음과 같이 나타날 수 있다는 점에 유의하는 것이 중요합니다. 목록과 같은 변경 가능한 개체를 처리할 때 문제가 발생합니다. 예를 들어, 다음 코드는 x와 y 모두에 동일한 빈 목록을 할당합니다.
x = y = [] x.append(1) print(x) print(y)
x와 y가 모두 동일한 목록을 참조하므로 [1, 1]이 인쇄됩니다. 두 개의 개별 목록을 생성하려는 경우 다음과 같이 작성해야 합니다.
x = [] y = [] x.append(1) print(x) print(y)
x와 y가 서로 다른 목록을 참조하므로 이렇게 하면 [1]과 []가 인쇄됩니다.
위 내용은 Python에서 연쇄 할당은 어떻게 작동하며, 가변 객체를 다룰 때 잠재적인 위험은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!