Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 재귀 함수는 함수가 자신을 호출할 때마다 새 네임스페이스를 생성합니까?

<시간/> <본문>

예, 함수 호출(재귀 호출이 아닌 모든 함수 호출)은 새 네임스페이스를 생성합니다. 그러나 매개변수로 주어지면 OBJECTS는 참조로 전달됩니다.

따라서 새 네임스페이스는 이 참조의 고유한 복사본을 가져오지만 여전히 호출 함수에서와 동일한 개체를 참조하며 해당 개체의 내용을 변경하면 호출 함수의 변경 사항을 알 수 있습니다.

더 구체적으로 말하면 인터프리터는 함수 호출을 만날 때마다 프레임 객체를 생성하고 프레임 스택으로 푸시합니다. 프레임이 생성될 때마다 해당 프레임에는 프레임의 각 변수가 재정의되는 고유한 전용 네임스페이스가 제공됩니다.