如何在 Python 中獲取例項的類名?


面向物件的程式設計,包括類和物件的概念,在 Python 中得到了很好的支援。它提供了清晰的程式結構和簡單的程式碼修改。由於類的可共享性,程式碼可以重用,並提供抽象、封裝和多型的許多好處。

Python 類是用於在 Python 中建立物件的“藍圖”。

在 Python 中獲取例項的類名

要確定 Python 例項的類名,有兩種方法:

  • 使用type()函式和__name__函式。

  • 使用__class__和__name__的組合。

一個名為__name__的唯一內建變數基本上提供了它所使用的當前模組的名稱。

由於 Python 沒有像其他程式語言(如 C/C++、Java 等)那樣的 main() 方法,因此如果原始檔用作主程式,直譯器會將__main__的值設定為__name__。

此外,如果從另一個模組匯入檔案,則__name__將設定為匯入模組的名稱。

以下程式碼使用 type() 函式和 __name__ 變數檢索物件的型別或類

示例

class number: def __init__(self, number): self.number = number x = number(1) print (type(x).__name__)

輸出

number

在本文中,我們將學習使用上述方法在 Python 中獲取例項的類名。

使用 __class__ .__name__

Python 的 __class__ 屬性是獲取類名的第一種也是最簡單的方法,它簡單地指代我們要檢索的物件的類。在這裡,我們將該屬性與 __name__ 屬性結合起來以確定物件或例項的類名。唯一的 Python 變數 __name__ 指定了它所使用的當前模組的名稱。

注意 - 您必須為該類建立物件才能使用 class.name 顯示其名稱。

示例

以下是使用 __class__.__name__ 方法在 Python 中獲取例項類名的示例

class animal: def __init__(self, animal): self.animal = animal l = animal("Lion is the animal") print (l.__class__) print (l.__class__.__name__)

輸出

以下是上述程式碼的輸出:

<class '__main__.animal'>
animal

使用 type() 和 __name__ 屬性

另一種方法是使用 Python 的內建 type() 方法來確定物件的型別或類。要獲取類名,您必須將 type() 函式與 __name__ 變數結合使用。

示例

以下是使用 type() 和 __name__ 屬性在 Python 中獲取例項類名的示例:

class animal: def name(self, name): return name a = animal() print(type(a).__name__)

輸出

以下是上述程式碼的輸出:

animal

示例

讓我們檢查一個簡單字串的類名,如下例所示:

d = "Python Program" print(type(d).__name__)

輸出

如以下輸出所示,字串例項的類為“str”:

str

示例

使用 itertools 模組的“count”例項獲取類名,如下例所示:

import itertools d = itertools.count(2) print(type(d).__name__)

輸出

以下是上述程式碼的輸出:

count

示例

透過定義一個空列表來查詢“列表”例項的類,如下例所示:

the_list = [] t = type(the_list) name_of_class = t.__name__ print(name_of_class)

輸出

以下是上述程式碼的輸出:

list

示例

類名也以字串形式提供,如下例所示:

class S: pass d = S() print(str(d.__class__))

輸出

以下是上述程式碼的輸出:

<class '__main__.S'>

使用巢狀類(使用 __qualname__ 代替 __name__)

在某些情況下,您可能希望在具有巢狀類的程式中獲取類名。在這種情況下,您可以透過使用 __qualname__ 屬性而不是 __name__ 屬性來檢索限定物件的名稱。

示例

列出了兩個類:“Animal”和“Lion”。此外,如下面的程式碼所示,我們為這兩個類建立了變數例項。Lion 的物件在“Animal”類中呼叫,並給出了一個名為“a”的引數,該引數是一個變數。

然後在“Animal”類物件“obj_Animal”中設定 Animal 和 Lion 的值。print 函式中同時提供了“__name__”方法和“__qualname__”方法,分別用於檢索類名和限定物件名。

class Animal: def __init__(self, a_name, a): self.a_name = a_name self.obj_Lion = self.Lion(a) class Lion: def __init__(self, obj_Lion): self.obj_Lion = obj_Lion obj_Animal = Animal("Sher", "King") print(obj_Animal. obj_Lion.__class__.__name__) print(obj_Animal. obj_Lion.__class__.__qualname__)

輸出

以下是上述程式碼的輸出:

Lion
Animal.Lion

更新於:2022-11-23

6K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.