如何在 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
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP