如何在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+ 浏览量

启动你的职业生涯

完成课程获得认证

开始
广告