Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Hàm id() trong Python - Địa chỉ nhận dạng đối tượng


id(obj) trả về số nguyên duy nhất đại diện cho danh tính (identity) của đối tượng trong bộ nhớ (thường là địa chỉ bộ nhớ trong CPython).

Cú pháp

id(đối_tượng) -> int

Ví dụ minh họa

str_1 = "Tutorials"
str_2 = "Tutorials"

print("id(str_1):", id(str_1))
print("id(str_2):", id(str_2))
print("Same id?", id(str_1) == id(str_2))  # True (string interning)

# Nối chuỗi -> object mới
str_1 = str_1 + str_2
print("After concat, same id?", id(str_1) == id(str_2))  # False

# Gán tham chiếu
str_2 = str_1
print("After assignment, same id?", id(str_1) == id(str_2))  # True

Kết quả

id(str_1): 46939355256048
id(str_2): 46939355256048
Same id? True
After concat, same id? False
After assignment, same id? True

Lưu ý quan trọng

  • id() duy nhất trong thời gian sống của object. Sau khi object bị GC, id có thể tái sử dụng.
  • id(a) == id(b) ⇔ a is b (kiểm tra identity).
  • String interning: Python tự động intern một số string ngắn, identifier-like → cùng id.
  • Không dùng id() để so sánh giá trị (dùng ==).

Kết luận

id() trả về identity address. Dùng chủ yếu cho debug, hiểu cơ chế memory model, hoặc implement cache/map keyed by object identity.