不,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
以上是我的程式碼如何在Python中發現物件的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!