문자열 주소가 같은 이유 c is d
423
작성한 질문수 2
Java에서는, 문자열 객체가 생성될 때마다 새로운 주소를 할당하는 방식을 사용합니다. 그러나 Python의 경우 문자열 객체 생성 시 매번 새로운 객체를 만드는 대신 기존에 선언되어 있던 immutable 객체를 사용합니다. 이는 CPython의 최적화 기법인 string interning에 의한 동작입니다. 따라서 둘 이상의 변수가 메모리의 동일한 문자열 객체를 가리킬 수 있고, 메모리를 절약하게 됩니다.
a = 'PlanB'
b = 'PlanB'
print(id(a), id(b))
# 4346040648 4346040648
print(id(a) == id(b))
# True
print(a is b)
# True
간단하게 말하면, '동일한' 문자열을 가리킬 경우에는 미리 선언했던 변수(c)를 새로 선언하는 변수(d)에 덮어씌우는 것입니다.
따라서 c is d 가 True가 되는 것입니다.
답변 0
수강 신청 연장 문의드립니다.
0
12
1
26년2회 실기기출은 언제쯤...
0
12
2
재귀함수 종료조건
0
7
1
git bash .env
1
11
1
예제 001 실행 안됩니다.
0
13
3
ipython 설치가 안되는거 같습니다.
0
9
1
이론 공부법 요약본 버전 업데이트 문의
0
15
2
피드백 내용 문의드립니다.
0
20
0
백준 서비스 종료로 인한 강의 자료 업데이트 요청드립니다.
0
22
1
백준 사이트 준비중이라 문제를 볼 수 가 없어요
0
21
1
반복문, for문, 0~9 반복
0
78
0
visual studiocode
0
310
0
숫자, 문자열과는 다르게 리스트는 다른 메모리주소값을 가지는 이유
0
399
1
문자형의 자료형을 정수형으로 바꾸는 이유가 무엇인가요?
0
896
1
is와 ==연산자 부분 수업하신 내용과 다른 결과 출력
0
430
1
문자열이 한글로 이루어졌을 경우
0
349
1
예제로 공부하는 Python 100 문제풀이 Part.1 /리스트, 반복문, 요소 값, 거꾸로
0
294
0
변수 메모리할당
0
233
0
질문 응답이 왜이렇게 느립니까?
0
511
2
'변수선언, 값, 할당' 강의 2분 24초
0
297
1
노트 패드 npp exec 설치 오류
0
509
1
노트 패드 입력 시 콘솔 변동사항
1
321
1
노드패드++ pluging admin 들어가서 nppexec 설치가 안됩니다.
0
352
0
NOTEPAD++ 로 콘솔 실행 관련 질문이 있습니다..
5
710
3





