Python의 연결 할당 이해
"x = y = somefunction()"과 같은 표현으로 예시되는 Python의 연결 할당은 여러 순차 할당과의 동등성에 관한 토론("x = somefunction(); y = somefunction()"). 이 문제를 명확히 하기 위해 연결된 할당의 작동을 자세히 살펴보겠습니다.
연결된 할당에서는 가장 왼쪽 대상이 먼저 할당됩니다. 따라서 "x = y = somefunction()"은 다음과 같습니다.
temp = somefunction() x = temp y = temp
왼쪽 대상이 할당되기 전에 임시 변수 "temp"의 값을 수신하므로 이 순서가 중요합니다. 목표는 오른쪽. 이는 연결된 할당 함수의 디스어셈블리에서 분명합니다.
>>> def chained_assignment(): ... x = y = some_function() ... >>> import dis >>> dis.dis(chained_assignment) 2 0 LOAD_GLOBAL 0 (some_function) 3 CALL_FUNCTION 0 6 DUP_TOP 7 STORE_FAST 0 (x) 10 STORE_FAST 1 (y) 13 LOAD_CONST 0 (None) 16 RETURN_VALUE
함수에서 반환된 값은 먼저 "x"에 저장되고 그 다음 "y"에 저장됩니다.
이것은 연결된 할당의 동작을 이해하려면 이해가 중요합니다. 예를 들어, "x = y = []"와 같은 표현은 피해야 합니다. "x"와 "y"는 모두 동일한 목록을 참조하기 때문입니다. 대신 "x = []" 및 "y = []"와 같은 별도의 할당을 선호하여 고유한 목록을 만듭니다.
위 내용은 Python에서 연결 할당은 어떻게 작동하나요? 실제로 여러 순차 할당과 동일합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!