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