如何在 Python 中獲取物件的名稱?
不,在 Python 中沒有辦法獲取物件的名稱。原因是物件本身並沒有名稱。
假設我們有以下程式碼。在這裡,我們無法找到實際的例項名稱。由於 ob1 和 ob2 都繫結到相同的值,我們無法得出 ob1 或 ob2 的例項名稱的結論 -
示例
# Creating a Demo Class class Demo: pass Example = Demo ob1 = Example() ob2 = ob1 print(ob2) print(ob1)
輸出
<__main__.Demo object at 0x00000250BA6C5390> <__main__.Demo object at 0x00000250BA6C5390>
如上所示,我們無法顯示物件的精確名稱。但是,我們可以顯示例項和計數,如下面的示例所示。
獲取類的例項
在這個例子中,我們建立了一個 Demo 類,它有四個例項 -
ob1 = Demo() ob2 = Demo() ob3 = Demo() ob4 = Demo()
我們迴圈遍歷記憶體中的物件 -
for ob in gc.get_objects():
示例
使用 isinstance(),每個物件都被檢查是否是 Demo 類的例項。讓我們看看完整的示例 -
import gc # Create a Class class Demo: pass # Four objects ob1 = Demo() ob2 = Demo() ob3 = Demo() ob4 = Demo() # Display all instances of a given class for ob in gc.get_objects(): if isinstance(ob, Demo): print(ob)
輸出
<__main__.Demo object at 0x7f18e74fe4c0> <__main__.Demo object at 0x7f18e7409d90> <__main__.Demo object at 0x7f18e7463370> <__main__.Demo object at 0x7f18e7463400>
顯示類的例項計數
在這個例子中,我們將統計例項並顯示 -
示例
import gc # Create a Class class Demo(object): pass # Creating 4 objects ob1 = Demo() ob2 = Demo() ob3 = Demo() ob4 = Demo() # Calculating and displaying the count of instances res = sum(1 for k in gc.get_referrers(Demo) if k.__class__ is Demo) print("Count the instances = ",res)
輸出
Count the instances = 4
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP