Python에서 연쇄 할당은 어떻게 작동하며, 가변 객체를 다룰 때 잠재적인 위험은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-27 10:10:03
원래의
1017명이 탐색했습니다.

How do chained assignments work in Python, and what are the potential pitfalls when dealing with mutable objects?

연결 할당은 어떻게 작동하나요?

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿