在上一篇教程中,我们学习了 Python OOP。我们知道 Python 也支持对象和类的概念。
一个对象只是数据(变量)和方法(函数)的集合。同样,一个类是该对象的蓝图。
在我们学习对象之前,让我们先来了解一下 Python 中的类。
Python 类
类被认为是对象的蓝图。
我们可以把类想象成房子的草图(原型)。它包含了关于楼层、门、窗户等所有细节。
根据这些描述,我们建造房子;房子就是对象。
因为可以根据同一个描述建造许多房子,所以我们可以从一个类创建许多对象。
定义 Python 类
我们使用 class
关键字在 Python 中创建一个类。例如,
class ClassName:
# class definition
在这里,我们创建了一个名为 ClassName
的类。
让我们看一个例子,
class Bike:
name = ""
gear = 0
这里,
Bike
- 类的名称name/gear
- 类内部的变量,默认值分别为""
和 0。
注意:类内部的变量称为属性。
Python 对象
一个对象被称为一个类的实例。
假设 Bike
是一个类,那么我们可以从该类创建像 bike1
、bike2
等对象。
这是创建对象的语法。
objectName = ClassName()
让我们看一个例子,
# create class
class Bike:
name = ""
gear = 0
# create objects of class
bike1 = Bike()
这里,bike1
是这个类的对象。现在,我们可以使用这个对象来访问类的属性。
使用对象访问类属性
我们使用 .
符号来访问类的属性。例如,
# modify the name property
bike1.name = "Mountain Bike"
# access the gear property
bike1.gear
在这里,我们使用 bike1.name
和 bike1.gear
分别更改和访问 name 和 gear 属性的值。
示例 1:Python 类和对象
# define a class
class Bike:
name = ""
gear = 0
# create object of class
bike1 = Bike()
# access attributes and assign new values
bike1.gear = 11
bike1.name = "Mountain Bike"
print(f"Name: {bike1.name}, Gears: {bike1.gear} ")
输出
Name: Mountain Bike, Gears: 11
在上面的示例中,我们定义了一个名为 Bike
的类,它有两个属性:name 和 gear。
我们还创建了 Bike
类的一个对象 bike1
。
最后,我们使用 .
符号访问和修改了对象的属性。
创建 Python 类的多个对象
我们也可以从一个类创建多个对象。例如,
# define a class
class Employee:
# define a property
employee_id = 0
# create two objects of the Employee class
employee1 = Employee()
employee2 = Employee()
# access property using employee1
employee1.employeeID = 1001
print(f"Employee ID: {employee1.employeeID}")
# access properties using employee2
employee2.employeeID = 1002
print(f"Employee ID: {employee2.employeeID}")
输出
Employee ID: 1001 Employee ID: 1002
在上面的示例中,我们创建了 Employee
类的两个对象 employee1 和 employee2。
Python 方法
我们也可以在 Python 类中定义一个函数。在类中定义的 Python 函数称为方法。
让我们看一个例子,
# create a class
class Room:
length = 0.0
breadth = 0.0
# method to calculate area
def calculate_area(self):
print("Area of Room =", self.length * self.breadth)
# create object of Room class
study_room = Room()
# assign values to all the properties
study_room.length = 42.5
study_room.breadth = 30.8
# access method inside class
study_room.calculate_area()
输出
Area of Room = 1309.0
在上面的例子中,我们创建了一个名为 Room
的类,包含
- 属性:length 和 breadth
- 方法:
calculate_area()
在这里,我们从 Room
类创建了一个名为 study_room
的对象。
然后我们使用该对象为属性 length 和 breadth 赋值。
请注意,我们还使用了该对象来调用类内部的方法,
study_room.calculate_area()
在这里,我们使用了 .
符号来调用方法。最后,方法内部的语句被执行。
Python 构造函数
早些时候,我们给一个类属性赋了一个默认值,
class Bike:
name = ""
...
# create object
bike1 = Bike()
然而,我们也可以使用构造函数来初始化值。例如,
class Bike:
# constructor function
def __init__(self, name = ""):
self.name = name
bike1 = Bike()
这里,__init__()
是构造函数,每当该类的一个新对象被实例化时,它就会被调用。
上面的构造函数初始化了 name 属性的值。
我们使用了 self.name
来引用 bike1 对象的 name 属性。
如果我们在类中使用构造函数来初始化值,我们需要在创建类的对象时传递相应的值。
bike1 = Bike("Mountain Bike")
这里,"Mountain Bike"
被传递给 __init__()
的 name 参数。
另请阅读