文章目录
Python 中的类对象具有一些内置属性,这些属性通常用于获取有关类的元信息或控制类的行为。以下是一些常见的类对象内置属性:
name:返回类的名字。
class MyClass:
pass
print(MyClass.__name__) # 输出 "MyClass"
doc:返回类的文档字符串(如果有的话)。
class MyClass:
"""This is a docstring for MyClass."""
print(MyClass.__doc__) # 输出 "This is a docstring for MyClass."
base:返回类的基类。如果类没有基类,则返回 None。
class Base:
pass
class MyClass(Base):
pass
print(MyClass.__base__) # 输出 <class '__main__.Base'>
bases:返回一个包含类所有基类的元组。
class Base1:
pass
class Base2:
pass
class MyClass(Base1, Base2):
pass
print(MyClass.__bases__) # 输出 (<class '__main__.Base1', <class '__main__.Base2'>)
mro:返回一个包含类及其所有基类的元组,用于解析方法调用和属性查找。
class Base1:
pass
class Base2:
pass
class MyClass(Base1, Base2):
pass
print(MyClass.__mro__) # 输出 (<class '__main__.MyClass'>, <class '__main__.Base1'>, <class '__main__.Base2'>, <class 'object'>)
dict:返回一个字典,其中包含类的属性。注意,这不会包括继承自基类的属性。
class MyClass:
x = 1
print(MyClass.__dict__) # 输出 {'x': 1}
module:返回定义类的模块的名称。如果类是在交互式解释器中定义的,则返回 “main”。
# 假设这个脚本的名称是 "my_module.py"
class MyClass:
pass
print(MyClass.__module__) # 输出 "my_module"
subclasses():返回一个包含类的所有直接子类的列表。
class Base:
pass
class SubClass1(Base):
pass
class SubClass2(Base):
pass
print(Base.__subclasses__()) # 输出 [<class '__main__.SubClass1'>, <class '__main__.SubClass2'>]
这些是类对象的一些常见内置属性。还有其他一些不太常见的属性,这些属性主要用于Python的内部实现。在大多数情况下,上述属性应该足以满足你的需求。