Hướng dẫn python get object from memory address - python lấy đối tượng từ địa chỉ bộ nhớ
Bạn gần như chắc chắn đã đặt câu hỏi sai, và câu trả lời của Raymond Hettinger gần như chắc chắn là những gì bạn thực sự muốn. Show Một cái gì đó như thế này có thể hữu ích khi cố gắng đào sâu vào phần bên trong của thông dịch viên CPython cho mục đích học tập hoặc kiểm toán nó cho các lỗ hổng bảo mật hoặc một cái gì đó, nhưng ngay cả khi đó, có lẽ bạn nên nhúng trình thông dịch Python vào một chương trình và viết các chức năng hiển thị Bất cứ điều gì bạn muốn vào trình thông dịch Python, hoặc ít nhất là viết mô -đun mở rộng C cho phép bạn thao tác các đối tượng CPython. Nhưng, nếu bạn thực sự cần phải làm điều này Đầu tiên, không có cách nào đáng tin cậy để thậm chí lấy địa chỉ từ Tuy nhiên, vì bạn có lẽ chỉ quan tâm đến CPython, bạn có thể dựa vào
. Có lẽ bạn vẫn có nó và chỉ không thể nhớ bạn đặt nó ở đâu)) Tiếp theo, bạn làm gì với địa chỉ này? Chà, Python không phơi bày bất kỳ chức năng nào để làm ngược lại với Trong các phiên bản rất cũ của Tất nhiên việc phá vỡ trình thông dịch Python làm điều này sẽ dễ dàng hơn nhiều so với việc làm bất cứ điều gì hữu ích, nhưng không thể làm bất cứ điều gì hữu ích, và bạn có thể vui vẻ thử nghiệm nó. Cải thiện bài viết Lưu bài viết Trong Python, mọi thứ đều là một đối tượng, từ các biến đến danh sách và từ điển, mọi thứ đều được coi là đối tượng. & NBSP; Trong bài viết này, chúng ta sẽ lấy địa chỉ bộ nhớ của một đối tượng trong Python. & NBSP; Phương pháp 1: Sử dụng ID ()Chúng ta có thể nhận được một địa chỉ bằng hàm id (). Hàm id () cung cấp địa chỉ của đối tượng cụ thể. Syntax:
trong đó đối tượng là các biến dữ liệu. Ví dụ: Chương trình Python để có được địa chỉ của các đối tượng khác nhauPython program to get the address of different objects Python3
Output:
Phương pháp 2: Sử dụng các mô -đun C_int, Địa chỉCTYPES là một thư viện chức năng nước ngoài cho Python. Nó cung cấp các loại dữ liệu tương thích C và cho phép gọi các chức năng trong DLL hoặc thư viện được chia sẻ. Syntax:
trong đó đối tượng là các biến dữ liệu Ví dụ: Chương trình Python để lấy địa chỉ bộ nhớ của & nbsp; một biến Python program to get the memory address of a variable Python3
Output:
Cũng có thể nhận được địa chỉ bộ nhớ ở định dạng thập lục phân. Ở đây chúng tôi sẽ gọi hàm HEX (địa chỉ), để chuyển đổi địa chỉ bộ nhớ thành đại diện thập lục phân. Syntax:
where,
Ví dụ: Chương trình Python để có được địa chỉ bộ nhớ trong biểu diễn thập lục phân. Python program to get the memory address in hexadecimal representation. Python3
Output:
Tôi có thể lấy một đối tượng Python từ địa chỉ bộ nhớ của nó không?Bây giờ chúng tôi có địa chỉ, chúng tôi có thể nhận lại các đối tượng giá trị/python từ địa chỉ bộ nhớ bằng mô -đun CTYPES. trong đó, memeory_address là địa chỉ bộ nhớ của biến. Giá trị là phương pháp được sử dụng để trích xuất một giá trị.using ctypes module. where, memeory_address is the memory address of the variable. value is the method which is used to extract a value.
Là địa chỉ của vị trí bộ nhớ nơi được lưu trữ đối tượng?Là địa chỉ của vị trí bộ nhớ nơi được lưu trữ đối tượng?Một con trỏ tham chiếu một vị trí trong bộ nhớ và có được giá trị được lưu trữ tại vị trí đó được gọi là phân tích con trỏ.A pointer references a location in memory, and obtaining the value stored at that location is known as dereferencing the pointer.
__ repr __ trong Python là gì?Chức năng Python __repr __ () trả về biểu diễn đối tượng trong định dạng chuỗi.Phương thức này được gọi khi hàm repr () được gọi trên đối tượng.Nếu có thể, chuỗi được trả về phải là biểu thức Python hợp lệ có thể được sử dụng để tái tạo lại đối tượng.returns the object representation in string format. This method is called when repr() function is invoked on the object. If possible, the string returned should be a valid Python expression that can be used to reconstruct the object again.
__ str __ trong Python là gì?Phương thức __str__ trong Python đại diện cho các đối tượng lớp dưới dạng chuỗi - nó có thể được sử dụng cho các lớp.Phương pháp __str__ nên được xác định theo cách dễ đọc và xuất ra tất cả các thành viên của lớp.Phương pháp này cũng được sử dụng như một công cụ gỡ lỗi khi các thành viên của một lớp cần được kiểm tra. |