首頁 >後端開發 >Python教學 >我的程式碼如何在Python中發現物件的名稱?

我的程式碼如何在Python中發現物件的名稱?

WBOY
WBOY轉載
2023-08-19 14:57:141057瀏覽

我的程式碼如何在Python中發現物件的名稱?

不,Python中沒有辦法發現物件的名稱。原因是物件實際上沒有名稱。

假設我們有以下程式碼。在這裡,我們無法找到實際的實例名稱。由於ob1和ob2都綁定到相同的值,我們無法得到ob1或ob2的實例名稱是否相同的結論−

Example

的中文翻譯為:

範例

# 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():

Example

使用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>

顯示類別的實例數量

在這個範例中,我們將計算實例並顯示 −

Example

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中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除