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

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

在Python中,每个对象都属于某个类。如果我们想要获取一个对象的类名,可以使用 type() 函数或者 object.__class__ 属性。下面我们分别来介绍这两种方法。

阅读更多:Python 教程

使用type()函数

type() 函数可以返回一个对象的类型,包括基本类型和自定义类型。我们可以将需要获取类名的对象作为参数传递给 type() 函数,函数将返回该对象的类信息。

示例代码如下:

class Foo:
    pass

foo = Foo()
print(type(foo).__name__)

输出结果为:

Foo

在上面的示例中,我们定义了一个名为 Foo 的类,然后创建了一个 Foo 类的实例 foo。我们将 foo 传递给 type() 函数,并获取它的类信息。最后,我们使用 __name__ 属性获取类名,并将其打印出来。

使用object.class属性

除了使用 type() 函数,我们还可以使用每个对象都具有的 __class__ 属性来获取类信息。该属性返回一个指向该对象所属类的引用。

示例代码如下:

class Foo:
    pass

foo = Foo()
print(foo.__class__.__name__)

输出结果为:

Foo

在上面的示例中,我们同样定义了一个名为 Foo 的类,创建了一个 Foo 类的实例 foo。接着,我们使用 foo.__class__ 获取 foo 所属的类,并使用 __name__ 属性获取类名,并将其打印出来。

需要注意的是,在某些情况下,我们可能需要使用 isinstance() 函数来检查一个对象是否为某个特定类的实例,因为一个对象可能同时属于多个类或继承自多个父类。

示例代码如下:

class Foo:
    pass

class Bar(Foo):
    pass

bar = Bar()
print(isinstance(bar, Bar))
print(isinstance(bar, Foo))

输出结果为:

True
True

在上面的示例中,我们定义了两个类 FooBarBar 类是 Foo 类的子类。我们创建了一个 Bar 类的实例 bar,然后使用 isinstance() 函数检查它是否为 Bar 类的实例和 Foo 类的实例。

结论

通过 type() 函数和 __class__ 属性,我们可以获取一个 Python 对象的类名。同时,在使用 isinstance() 函数时,需要注意对象可能同时属于多个类或继承自多个父类。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程