python 의 변 수 는 어떻게 메모 리 를 엽 니까?

4324 단어 python변량메모리
python 의 변수
변수의 유형 을 미리 설명 할 필요 가 없습니다.변수의 유형 과 값 이 할당 되 는 순간 초기 화 됩 니 다.(성명 과 정의 과정 이 함께 완 료 됩 니 다)
python 에서 모든 변 수 는 메모리 에 생 성 됩 니 다.변 수 를 통 해 메모리 의 값 을 볼 수 있 습 니 다.
하하,여기 잘 아 시 죠?c 의 지침 과 같 군요.(메모리 에 접근 하 는 값)
우선 여러분 이 좀 알 아야 할 것 이 있 습 니 다:python 에서:
x=5 이후 에 우 리 는 그것 의 과정 을 알 아야 한다.시스템 은 먼저 메모리 하 나 를 찾 아 5 를 저장 했다.이어서 x 는 현재 의 이 메모 리 를 가 리 켰 다.
예측 1:python 의 변 수 는 포인터 입 니 다.

>>> x = 4 
>>> y = 5 
>>> print x 
4 
>>> print y 
5 
>>> id(x) 
10413988 
>>> id(y) 
10413976 
>>> x = y 
>>> id(x) 
10413976 
>>> id(y) 
10413976 
>>> 
위 에서 우 리 는 볼 수 있다.
x = 4
설명 x 는 메모리 에 4 로 저 장 된 주 소 를 가리 키 는데 그 주 소 는 10413988 입 니 다.
y = 5
y 는 메모리 에 5 로 저 장 된 주 소 를 가리 키 는데 그 주 소 는 10413976 입 니 다.

즉,x=4,y=5 를 실행 한 후에 x,y 는 각각 다른 주 소 를 가리 키 고 x=y 를 실행 한 후에:

즉,x 는 y 가 가리 키 는 메모 리 를 가리 키 고 있 습 니 다.여기 서 우 리 는 그들 이 모두 같은 메모 리 를 가리 키 고 있다 는 것 을 알 고 있 습 니 다.
하하,원래 c 안의 지침 과 정말 같 구나!!하하 하
(그런데,그런데,그런데:이게 다 야??)

>>> x = 4 
>>> print x 
4 
>>> id(x) 
10413988 
>>> x = 5 
>>> print x 
5 
>>> id(x) 
10413976 
>>> 
자,우리 모두 이어서 봅 시다.

즉,시작 할 때 x 는 10413988 이라는 메모 리 를 가리 키 는데 그 안에 저 장 된 것 은 4 이다.
x=5 를 실행 한 후에 이렇게 되 었 습 니 다.

좋아,ok 그 랬 어.
모 르 겠 어 요.눈치 채 셨 나 요?
python 에서 메모리 에 저 장 된 것 을 초기 화 하 는 것 은 변경 할 수 없습니다.우리 가 변경 할 수 있 는 것 은 단지 그것 의 지향 일 뿐 입 니 다.
그러나,그러나 c 에서 int x=4;즉,x 의 주 소 는 정 해 져 있 고 안에 저 장 된 물건 은 변경 할 수 있다.

#include <stdio.h> 
 
int main(){ 
 int x = 4; 
 printf("%p %d
", &x, x); x = 5; printf("%p %d
", &x, x); return 0; }
우리 모두 운행 결 과 를 다시 한 번 봅 시다.

위 에서 볼 수 있 듯 이 주 소 는 변 하지 않 았 습 니 다.자,이 점 은 python 과 c 의 차이 가 비교적 큽 니 다.주의 하 시기 바 랍 니 다.
메모리 크기
우 리 는 이런 코드 를 살 펴 보 자.

>>> x = 6 
>>> id(x) 
10413964 
>>> y = 7 
>>> id(y) 
10413952 
>>> z = 8 
>>> id(z) 
10413940 
>>> 
위의 프로그램 에서 우 리 는 시스템 이 분배 한 주 소 는 다음 과 같다 는 것 을 알 고 있다.

10413964
10413952
10413940
그래서 우 리 는 python 에서 이 정수 들 을 주어 야 할 바이트 가 12 일 수도 있다 고 대담 하 게 추측 했다.
메모리 에 이 럴 수도 있 습 니 다.

하하,그래 야 지.다른 크기 에 대해 서 는 관심 있 는 친구 들 이 연구 할 수 있어.
3:python 메모리
python 에서 시스템 은 모든 값 을 고정된 위치 에 두 었 습 니 다.그렇지 않 으 면 왜 메모리 주 소 를 탐구 할 때마다 결 과 는 똑 같 습 니까?(수치 가 같 고 주소 도 같 습 니 다)

>>> x = 4 
>>> y = 5 
>>> id(x) 
10413988 
>>> id(y) 
10413976 
>>> 
만약 시스템 이 4 로 메모리 하 나 를 분배 하고 특정한 규칙(c 안의 메모리 정렬 과 유사)을 따 르 면 그 다음 에 5 로 다른 메모리 하 나 를 분배 하고 10413976 으로 분배 합 니 다.
그럼 다음은 어떻게 설명 할 까요?

>>> x = 4 
>>> y = 6 
>>> id(x) 
10413988 
>>> id(y) 
10413964 
>>> 
어떤 규칙 을 따 르 면 6 도 10413976 에 배 치 됐 을 것 이다.그러나 그 는 10413964 에 배 치 됐 을 것 이다.
우리 다시 보 자.

>>> x = 4 
>>> y = 6 
>>> id(x) 
10413988 
>>> id(y) 
10413964 
>>> z = 5 
>>> id(z) 
10413976 
>>> 
이..하하,그 렇 겠 지!!!
즉,python 에서 시스템 또는 python 자체 가 메모 리 를 분배 할 때 이미 이 값 이 얼마 인지 에 따라 메모리 의 위 치 를 확정 했다.
이상 의 python 의 변 수 는 어떻게 메모 리 를 개척 하 는 지 는 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기