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 의 변 수 는 어떻게 메모 리 를 개척 하 는 지 는 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.