Python面向对象程序设计构造函数和析构函数用法分析
构造函数
在 Python 中,构造函数是用于在对象创建时进行初始化操作的特殊函数。Python 中的构造函数是 init()。
示例一:
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_car_info(self):
return f"{self.make} {self.model} {self.year}"
my_car = Car('Tesla', 'Model S', 2022)
print(my_car.get_car_info()) # 'Tesla Model S 2022'
上述代码中,我们定义了 Car 类,其中用 init() 构造函数实例化了一个my_car对象。传递的参数是make、model和year,用于初始化该对象的特征。
示例二:
class Student:
def __init__(self, name, id):
self.name = name
self.id = id
def __str__(self):
return f"Name: {self.name}, ID: {self.id}"
new_student = Student('Jack', 1001)
print(new_student) # 'Name: Jack, ID: 1001'
上述代码中,我们定义了一个 Student 类,并使用 init() 构造函数实例化 new_student 对象。我们传递了两个参数 name 和 id 以初始化这个对象的特征。我们还定义了 str() 方法,以便在打印对象时输出有用的信息。
析构函数
Python 中的析构函数是 del(),用于释放对象的资源。
析构函数是在对象被销毁时自动调用的。在 Python 中,对象销毁时会自动调用析构函数,释放对象所占用的内存空间。
示例一:
class Person:
def __init__(self, name):
self.name = name
def __del__(self):
print(f"{self.name} is being destroyed")
person = Person('John')
del person # Output: John is being destroyed
上述代码中,我们定义了一个 Person 类,并用 init() 构造函数实例化了一个 person 对象。在删除 person 对象之前,我们使用 del 关键字释放对象。由于对象被删除,Python 自动调用析构函数 del(),并输出消息。
示例二:
class Book:
def __init__(self, name):
self.name = name
def __del__(self):
print(f"Deleting Book {self.name}")
book = Book("Python Programming")
book2 = book
del book
del book2 # Output: Deleting Book Python Programming
上述代码中,我们定义了一个 Book 类,并使用 init() 构造函数实例化 book 对象。我们还将 book 对象赋值给 book2,然后删除了两个对象。在对象被删除时,Python 将自动调用 del() 析构函数,并输出“Deleting Book”的消息。
总结
在 Python 中,构造函数和析构函数都是用于对象的初始化和释放的。构造函数用于初始化对象的特征,而析构函数用于释放对象所占用的内存空间。了解这两个函数的用法可以更好地理解和编写 Python 中的面向对象程序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python面向对象程序设计构造函数和析构函数用法分析 - Python技术站