본문 바로가기
파이썬

파이썬 함수는 어떻게 객체를 반환합니까?

by º기록 2020. 12. 16.
반응형

아래 다이어그램에는 f 함수에서 반환 된 temp 이름에 대한 쿼리가 있습니다.

여기에 이미지 설명 입력

로컬 프레임 f 에서 temp 는 다음과 같이 말할 때 int 클래스의 6 객체를 가리키는 참조 변수입니다. checkPassingMech 프레임의 일부인 참조 변수 output f 에서 return temp 는 동일한 개체 6 해당 temp가 가리키는.

내 질문:

Q1) 내 이해가 정확합니까?

Q2) Q1이 예이면이 다이어그램은 temp 가 참조 유형이 아니라 6을 가리키는 화살표가 아닌 상자에 값을 표시한다는 착각을줍니다. 맞습니까?

Q3) Q2가 yes이면 6 이 실제로 힙에 저장되고 temp output 이이 힙을 가리킬 것이라고 말할 수 있습니까? 프레임 (로컬 스택)에서의 공간

 

해결 방법

 

>>> def f():
    temp = 6
    print(id(temp))
    return temp

>>> output = f()
507107408
>>> id(output)
507107408


CPython 구현 세부 정보 : Python의 경우 if (x)가 메모리입니다. x가 저장되는 주소.

엄밀히 말해서 값이 6 이면 output temp 는 실제로 동일한 객체를 가리키는 int 파이썬이 시작될 때 캐시되는 객체.


 

참조 페이지 https://stackoverflow.com/questions/22896094

 

 

반응형

댓글