강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của hanhyg
hanhyg

câu hỏi đã được viết

Nghiên cứu giải quyết vấn đề Python 100 bằng các ví dụ Phần 1

is, ==, toán tử

문자열 주소가 같은 이유 c is d

Viết

·

385

0

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

https://planbs.tistory.com/entry/Python-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98-%EB%A9%94%EB%AA%A8%EB%A6%AC-%ED%95%A0%EB%8B%B9-%EB%B0%A9%EC%8B%9D

 

간단하게 말하면, '동일한' 문자열을 가리킬 경우에는 미리 선언했던 변수(c)를 새로 선언하는 변수(d)에 덮어씌우는 것입니다.

따라서 c is d 가 True가 되는 것입니다.

 

python

Câu trả lời

Câu hỏi này đang chờ câu trả lời
Hãy là người đầu tiên trả lời!
Hình ảnh hồ sơ của hanhyg
hanhyg

câu hỏi đã được viết

Đặt câu hỏi