>  기사  >  백엔드 개발  >  Python에서 연결 할당은 어떻게 작동하나요? 실제로 여러 순차 할당과 동일합니까?

Python에서 연결 할당은 어떻게 작동하나요? 실제로 여러 순차 할당과 동일합니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-28 03:07:31996검색

How do chained assignments work in Python? Are they truly equivalent to multiple sequential assignments?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.