如何在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
在上面的示例中,我们定义了两个类 Foo
和 Bar
,Bar
类是 Foo
类的子类。我们创建了一个 Bar
类的实例 bar
,然后使用 isinstance()
函数检查它是否为 Bar
类的实例和 Foo
类的实例。
结论
通过 type()
函数和 __class__
属性,我们可以获取一个 Python 对象的类名。同时,在使用 isinstance()
函数时,需要注意对象可能同时属于多个类或继承自多个父类。