Python中的魔法命令(也被称为特殊方法或双下划线方法)是那些以双下划线开头和结尾的特殊方法,它们允许开发者自定义类的行为,使得对象可以像内置类型一样被使用。魔法命令的适用场景非常广泛,从基本的对象创建和操作到更高级的功能,如序列化和调试。以下是一些具体的使用场景示例:
__new__
:在对象实例化之前调用,用于创建对象。适用于定义单例模式等场景。__init__
:在对象创建之后调用,用于初始化对象的属性。适用于在创建对象时执行一些预处理操作。__getattr__
:当访问对象中不存在的属性时被调用。适用于动态地处理属性访问。__setattr__
:用于设置属性的值。适用于在对象创建时动态地设置属性。__str__
:控制 str(object)
调用时的字符串表示。适用于使对象在打印时更具可读性。__repr__
:控制 repr(object)
调用时的字符串表示。适用于生成有助于调试的字符串。__add__
、__sub__
等:分别处理加法、减法等运算。适用于自定义类的数值运算行为。__init_subclass__
:在类被子类化时调用。适用于在子类创建时执行额外的初始化操作。%timeit
优化代码性能,使用 %matplotlib inline
便于数据可视化。Python的魔法命令提供了一种强大的机制来扩展和定制类的行为,使得Python编程更加灵活和高效。