1. 构造函数
构造函数是一个特殊的方法,用于在创建对象时初始化该对象。在Python中,构造函数是__init__
方法。当你创建一个新的类实例时,Python会自动调用这个方法。
构造函数可以接受参数,这些参数用于设置对象的初始状态或添加必要的初始化操作。例如:
class MyClass:
def __init__(self, name):
self.name = name
def __repr__(self):
return f"MyClass instance with name: {self.name}"
# 使用构造函数创建对象
obj = MyClass("Example")
print(obj) # 输出: MyClass instance with name: Example
2. 魔法函数
在Python中,魔法函数(也称为魔术方法或特殊方法)是具有双下划线前缀和后缀的方法。这些方法在Python类的定义中具有特殊的意义,它们允许你在创建、初始化和销毁对象时以及进行其他操作时执行特定的行为。例如,__init__
是一个魔法函数,用于初始化新创建的对象。
一些常见的魔法函数包括:
__init__(self, ...)
: 构造函数,用于初始化新创建的对象。__new__(cls, ...)
: 在创建和返回实例之前被调用,通常不需要重写。__str__(self)
: 返回对象的字符串表示,用于print
函数。__repr__(self)
: 返回对象的官方字符串表示,通常用于调试。__del__(self)
: 析构函数,当对象被销毁时调用。class MyClass: def __init__(self, name): self.name = name def __repr__(self): return f"MyClass instance with name: {self.name}" # 创建对象并打印其字符串表示形式 obj = MyClass("Example") print(obj) # 输出: MyClass instance with name: Example
3. 析构函数
析构函数是另一个特殊的方法,用于在对象被销毁时执行清理操作。在Python中,析构函数是
__del__
方法。当Python的垃圾回收机制回收对象时,会调用这个方法。析构函数通常用于释放对象占用的资源,比如关闭文件、网络连接或释放系统资源。例如:
class FileWrapper: def __init__(self, filepath): self.file = open(filepath, 'r') def __del__(self): self.file.close() wrapper = FileWrapper("example.txt") # 当wrapper对象被销毁时,__del__方法会被调用,文件会被关闭。
在这个例子中,
FileWrapper
类有一个析构函数__del__
,它用于关闭打开的文件。当wrapper
对象不再被需要,并且被Python的垃圾回收机制回收时,__del__
方法会被自动调用,从而关闭文件。