如何在 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+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告