如何在Python中获取实例的类名?

如何在Python中获取实例的类名?

面向对象的过程式编程,包括类和对象的概念,在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__)
Python

输出

number
Python

在本文中,我们将学习使用上述方法在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__)
Python

输出

以下是上述代码的输出:

<class '__main__.animal'>
animal
Python

使用type()和name属性

另一种方法是利用Python内置的type()方法来确定对象的类型或类。要获取类名,您必须将type()函数与name变量结合使用。

示例

以下是使用type()和__name__属性在Python中获取实例的类名的示例:

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

输出

以上代码的输出如下 −

animal
Python

例子

如下例所示,让我们检查简单字符串的类名。

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

输出

字符串实例的类是“str”,正如以下输出所示 −

str
Python

例子

使用itertools模块的“count”实例获取类名,如下例所示。

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

输出

以上代码的输出如下 −

count
Python

例子

通过定义空列表,找到“列表”实例的类,如下面的示例所示 −

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

输出

以上代码的输出如下 −

list
Python

例子

类名也可以作为字符串如下面的例子所示 −

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

输出

以上代码的输出如下 −

<class '__main__.S'>
Python

使用嵌套类(使用__qualname__而不是__name__

在某些情况下,您可能希望在具有嵌套类的程序中获取类名。在这种情况下,您可以使用__qualname__属性而不是__name__属性检索限定对象的名称。

例子

在下面的代码中列出了两个类:“Animal”和“Lion”。此外,我们已经为这两个类创建了变量实例,如下所示。 Lion的对象在“Animal”类中被调用,并赋予名为“a”的变量。

然后,在类“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__)
Python

输出

以下是上述代码的输出 –

Lion
Animal.Lion
Python

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册