Giá trị id trong Python là gì?

Hàm id[] trả về danh tính của bất kỳ đối tượng Python nào. Điều này sẽ trả về một số nhận dạng số nguyên cho các đối tượng khác nhau

Việc triển khai CPython cơ bản sử dụng hàm

a = 1233.45
b = a

print[id[a]]
print[id[b]]
0 làm địa chỉ của đối tượng, trong bộ nhớ

Hãy hiểu điều này nhiều hơn một chút, sử dụng một số ví dụ

Cú pháp cơ bản của hàm id[] trong Python

Hàm này lấy bất kỳ đối tượng Python nào - có thể là số nguyên, float, chuỗi, danh sách, Lớp, hàm, lambda, v.v. và trả về id số nguyên

val = id[object]

Sử dụng id[] trong Python

Id của một đối tượng rất hữu ích để Python lưu trữ các giá trị của các biến đó. Cơ chế truy xuất các giá trị được lưu trong bộ nhớ cache này bằng cách sử dụng

a = 1233.45
b = a

print[id[a]]
print[id[b]]
0 giúp Python hoạt động tốt hơn

Điều này cũng hữu ích trong trường hợp nhiều biến tham chiếu đến cùng một đối tượng

a = 1233.45
b = a

print[id[a]]
print[id[b]]

đầu ra

2775655780976
2775655780976

Trong trường hợp này, Python sẽ dễ dàng theo dõi đối tượng được tham chiếu hơn, vì vậy id[] của a sẽ giống với id[] của b

Bây giờ, hãy thử sử dụng điều này trên một số đối tượng Python đơn giản

print[id[103]] # Int

print[id[104]]

print[id[10.25]] # Float

print[id['Hello from AskPython']] # String

print[id[[1, 2, 3]]] # List

print[id[lambda x: x * x]] # Lambda

đầu ra

1658621232
1658621264
2775655780976
2775665230232
2775665206344
2775656111776

Như bạn có thể quan sát, đối với các số nguyên 103 và 104, chỉ có sự khác biệt là 32 trong số ID của chúng. Điều này thật ý nghĩa. Tại sao?

Hãy nhớ rằng chúng tôi đã đề cập rằng

a = 1233.45
b = a

print[id[a]]
print[id[b]]
0 đề cập đến địa chỉ của đối tượng?

Id[104] là khối địa chỉ tiếp theo sau số nguyên 103. Vì các số nguyên trong Python được lưu trữ dưới dạng 4 byte, nên số này đại diện cho 32 bit và đó chính xác là sự khác biệt giữa các số id của chúng

Vì vậy, Python lưu trữ danh sách tất cả các số nguyên trong các khối liên tiếp, cách đều nhau. Có ý nghĩa?

Bây giờ, hãy kiểm tra chúng trên các chuỗi

________số 8

đầu ra

2775656418080
2775656418080

Như bạn có thể quan sát, Python thực sự lưu trữ các chuỗi để bảo vệ bộ nhớ

Hãy nhớ rằng bộ nhớ đệm chỉ có thể hoạt động trên các đối tượng Python bất biến, như số nguyên, chuỗi và số float. Bộ dữ liệu, Danh sách, v.v. là các đối tượng có thể thay đổi, vì vậy bộ nhớ đệm sẽ không hoạt động ở đây

Để chứng minh điều này, hãy kiểm tra id của hai danh sách có cùng phần tử

val = id[object]
0

Ở đây, vì các danh sách có thể thay đổi nên không có bất kỳ bộ nhớ đệm nào liên quan

Sử dụng id[] trên Đối tượng tùy chỉnh

Chúng ta cũng có thể sử dụng hàm id[] trên các đối tượng tùy chỉnh

Hãy lấy một ví dụ đơn giản

val = id[object]
1

đầu ra

val = id[object]
2

Điều này đề cập đến địa chỉ bộ nhớ nơi các đối tượng được lưu trữ, rõ ràng là khác nhau đối với hai trường hợp

Phần kết luận

Trong bài viết này, chúng ta đã tìm hiểu về cách sử dụng hàm id[] trong Python. Điều này đại diện cho địa chỉ bộ nhớ cơ bản của đối tượng Python, rất hữu ích trong việc lưu trữ các đối tượng bất biến vào bộ đệm

Hàm id[] trong Python là một hàm sẵn có trả về một số nguyên duy nhất của một đối tượng. Danh tính này phải là 100% duy nhất và không đổi đối với đối tượng này trong suốt thời gian tồn tại của nó, mặc dù hai đối tượng có thể có cùng giá trị id[] nếu chúng có thời gian tồn tại không chồng chéo

Ghi chú triển khai CPython. Id[] là địa chỉ của đối tượng trong bộ nhớ

Điểm quan trọng

  • Hàm id[] là một hàm sẵn có của Python
  • Hàm id[] trả về một id [danh tính] duy nhất cho đối tượng được chỉ định
  • Mỗi đối tượng Python có id duy nhất của nó
  • id được gán cho đối tượng tại thời điểm nó được tạo
  • Hai đối tượng có thể có id giống nhau nếu chúng có thời gian sống không chồng chéo
  • id[] hoạt động như một địa chỉ của một đối tượng trong bộ nhớ
  • Hầu hết hàm id[] được sử dụng nội bộ trong Python

cú pháp

val = id[object]
3

Tham số

Hàm Id[] lấy đối tượng làm tham số. Nó có thể là bất kỳ đối tượng nào, Chuỗi, Số nguyên, Danh sách, v.v.

Giá trị trả về

Hàm Id[] trả về danh tính duy nhất cho đối tượng được chỉ định

Ví dụ về id[] trong Python

1] Khai báo và khởi tạo biến có giá trị nguyên

val = id[object]
4

đầu ra

val = id[object]
5

2] Khai báo và khởi tạo biến với giá trị chuỗi

val = id[object]
6

đầu ra

val = id[object]
7

3] Khai báo và khởi tạo bộ dữ liệu

val = id[object]
8

đầu ra

val = id[object]
9

4] Khai báo và khởi tạo từ điển

a = 1233.45
b = a

print[id[a]]
print[id[b]]
0

đầu ra

a = 1233.45
b = a

print[id[a]]
print[id[b]]
1

5] Hàm id trong Python sử dụng Đối tượng tùy chỉnh

a = 1233.45
b = a

print[id[a]]
print[id[b]]
2

đầu ra

val = id[object]
40

6] Hàm id trong Python có Danh sách

val = id[object]
41

đầu ra

val = id[object]
42

ID trong Python là gì?

Hàm Python id[] . Id được gán cho đối tượng khi nó được tạo. Id là địa chỉ bộ nhớ của đối tượng và sẽ khác nhau mỗi khi bạn chạy chương trình. [ ngoại trừ một số đối tượng có id duy nhất không đổi, như số nguyên từ -5 đến 256]

Làm cách nào để nhận giá trị bằng id trong Python?

Hàm Python id[] trả về “danh tính” của đối tượng . Danh tính của một đối tượng là một số nguyên, được đảm bảo là duy nhất và không đổi cho đối tượng này trong suốt thời gian tồn tại của nó. Hai đối tượng có thời gian tồn tại không chồng lấp có thể có cùng giá trị id[].

Mục đích của id[] là gì?

id[] là một hàm sẵn có trong Python. Như chúng ta có thể thấy hàm chấp nhận một tham số duy nhất và được sử dụng để trả về danh tính của một đối tượng . Danh tính này phải là duy nhất và không đổi đối với đối tượng này trong suốt thời gian tồn tại. Hai đối tượng có thời gian tồn tại không chồng lấp có thể có cùng giá trị id[].

Làm cách nào để chuyển id trong Python?

Trong ví dụ trên, chúng ta đã sử dụng hàm id[], lấy một đối tượng làm tham số. id[obj] trả về "danh tính" của đối tượng "obj" . Danh tính này, giá trị trả về của hàm, là một số nguyên duy nhất và không đổi cho đối tượng này trong suốt thời gian tồn tại của nó.

Chủ Đề