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

WBOY
發布: 2023-08-19 14:57:14
轉載
1027 人瀏覽過

我的程式碼如何在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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板