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

示例

通过定义一个空列表,找到“lists”实例的类,如下所示的示例中所述。

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__”来检索类名和限定对象名。

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程