类只是创建对象所需的定义或蓝图。如果为一家公司搭建管理系统,则员工信息是这个系统中最重要的部分。因此,如果以Employee为名称创建一个类,则这个类将作为创建Employee对象的蓝图。此外,虽然实例和对象在现实世界中常互换使用,但理解两者之间的区别同样重要。对象表示类的内存地址,而实例只是类在特定情况下的虚拟副本。假设存在一个类Employee,并有6条员工信息。每位员工均为不同对象,并且都有不同的个人信息,如姓名、电子邮件id、年龄等。每个实例都是单一对象的唯一实际表现。对象使用实例执行操作。对象是通用的,但实例是特定的。每个实例都被赋值,同时使实例之间得以区分。因此,对象是通用的,但实例是类的实际表现。实例表示特定的对象,也表示在内存中创建的单个对象。这将在下一节中详细解释。
Python 中的一切均为对象,都是类的实例。类是一种用户定义的数据类型。具有该
数据类型的对象,称为该类的实例。所有的Python类都是object类的子类 可以直接调用object类中的方法 这些方法称为特殊方法
1.创建类和实例化对象
x = 1 print(type(x)) y = 'string' print(type(y))<class 'int'>
<class 'str'>
在定义类之后,可定义类的属性和方法。方法为类中定义的函数,它与给定的对象一起执行。方法需要访问使其执行的对象,因此,类中每个方法的第一个参数是当前实例,按照惯例,该实例被称为self。在方法内部使用self来访问存储在对象中的数据。self是调用该方法的实例化对象
Python 定义了一些名称以双下划线开始和结束的特殊方法(也称为函数)。最常用的是_init_()函数。此方法用于初始化类实例,也可称为类构造函数。因为每当Py·thon 创建该类实例时,会自动调用__init()_函数,所以只需将其定义,而不必显式调用。除此之外,_init_()函数并非类的强制性设置,而是可选的。下面定义_init_()函数。
class Employee: def __init__(self, name, email,department,age,salary): self.name = name self.email = email self.department = department self.age = age self.salary = salary def print_employee(self): print(self.name, self.email, self.department, self.age, self.salary) e1 = Employee("Alex","<EMAIL>qq.com",'Python',18,'12000') e1.print_employee()输出:Alex <EMAIL>qq.com Python 18 12000
1.1析构函数__del__
析构函数是在对象结束其生命周期时,系统自动执行的特殊函数。此方法的目的是释放对象占用的内存。在Python中,因为遵循用于内存管理的垃圾回收机制,所以析构函数需求较少,但它在Python中的确存在,并且实际中无须显式定义。析构函数是_del_()方法。未显式定义时会自动调用来销毁对象并清理对象占用的
当程序不再需要一个Python对象时,系统必须把该对象所占用的内存空间释放出来,这个过程称垃圾回收(GC),Python会自动回收所有对象所占用的内存空间,因此开发者无须关心对象垃圾回收的过程。
del e1 print(e1.Total_no_of_employees)Traceback (most recent call last):
NameError: name 'e