>백엔드 개발 >파이썬 튜토리얼 >Python에서 지역 변수를 어떻게 동적으로 할당할 수 있나요?

Python에서 지역 변수를 어떻게 동적으로 할당할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-12-02 03:11:13606검색

How Can I Dynamically Assign Local Variables in Python?

Python의 동적 변수 할당

Python에서 locals() 사전을 직접 수정하여 지역 변수를 동적으로 설정하는 것은 실행 가능한 솔루션이 아닙니다. 일반적인 믿음과는 달리, 그러한 수정 사항은 함수 범위 내에서 유지되지 않습니다.

대체 접근 방식

지역 변수를 동적으로 설정하려면 다음 중 하나를 사용하는 것이 좋습니다. 메소드:

사전

사전을 생성하고 키-값 쌍을 동적으로 할당:

d = {}
d['xyz'] = 42

객체 속성

객체 사용 및 속성 설정 동적으로:

class C: pass

obj = C()
setattr(obj, 'xyz', 42)

편집

비함수 네임스페이스(모듈, 클래스 정의, 인스턴스)의 변수에 액세스하려면 일반적으로 사전 조회가 필요합니다. 그러나 함수 로컬은 컴파일러에 알려진 변수 이름을 미리 컴파일하여 속도가 최적화됩니다.

Python의 C 구현에서 함수 내에서 locals()를 호출하면 현재 로컬 변수 값으로 초기화된 사전이 생성됩니다. 이 사전은 지역 변수에 대한 변경 사항으로 업데이트되고 이후에 locals()를 호출할 때 반환됩니다.

IronPython에서 locals()를 호출하는 함수는 사전을 지역 변수 저장소로 사용합니다. 지역 변수에 대한 할당은 사전을 변경하고 그 반대의 경우도 마찬가지입니다. 그러나 IronPython 내에서 locals 함수에 다른 이름을 바인딩하면 함수의 로컬 변수가 아닌 바인딩 범위의 로컬 변수에 액세스할 수 있습니다.

주의

참고하는 것이 중요합니다. locals()에서 반환된 사전에 할당하면 예측할 수 없는 결과가 발생할 수 있습니다. 이러한 과제에 의존하는 것은 강력히 권장되지 않습니다.

위 내용은 Python에서 지역 변수를 어떻게 동적으로 할당할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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