如何在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”例項的值。`__name__`方法和`__qualname__`方法都在`print`函式中可用,分別用於檢索類名和限定物件名。

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+ 瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始
廣告