前言
Python是一门解释型、面向对象以及动态数据类型的高级程序设计语言,今天所要说的就是极为重要的概念,面向对象。
一、面向对象的核心概念:
1.类(Class):
- 类是对象的抽象描述,是面向对象编程的基本概念。类定义了对象的属性(称为属性或数据成员)和方法(称为方法或行为)。
2.对象(Object):
- 对象是类的实例。通过实例化类,我们可以创建具体的对象,每个对象都有自己的属性和方法。
3.属性和方法:
- 属性:类的属性是指与类或对象相关联的数据。在 Python 中,属性是通过在
__init__
方法中使用self
来定义的实例变量。 - 方法:类中的方法是指定义在类中的函数,可以通过类的对象来调用,方法可以访问对象的属性。
4.封装、继承和多态:
- 封装:封装是指将数据和方法绑定在一起,可以通过类的接口来访问和操作数据。
- 继承:继承是指一个类可以从另一个类继承属性和方法,子类可以重用父类的代码并扩展或修改其行为。
- 多态:多态允许不同类的对象对同一方法作出响应,提高了代码的灵活性和可重用性。
二、类,对象,属性和方法
1.类的定义格式
类是对象的抽象描述
代码实例:可与上图对照着看。
class Car:
def __init__(self, make, model, year):
self.make = make # 制造商
self.model = model # 型号
self.year = year # 出厂年份
self.odometer = 0 # 里程表读数,默认为0
def display_info(self):
print(f"Car: {self.year} {self.make} {self.model}")
def read_odometer(self):
print(f"This car has {self.odometer} miles on it.")
def update_odometer(self, mileage):
if mileage >= self.odometer:
self.odometer = mileage
else:
print("You can't roll back an odometer!")
def increment_odometer(self, miles):
self.odometer += miles
2.如何使用这个 Car
类
对象是类的实例
# 创建一个 Car 对象
my_car = Car("Toyota", "Corolla", 2022)
# 使用对象的方法
my_car.display_info() # 输出:Car: 2022 Toyota Corolla
my_car.update_odometer(10000)
my_car.read_odometer() # 输出:This car has 10000 miles on it.
# 增加里程
my_car.increment_odometer(500)
my_car.read_odometer() # 输出:This car has 10500 miles on it.
输出:
Car: 2022 Toyota Corolla
This car has 10000 miles on it.
This car has 10500 miles on it.
3.这个Car类的属性
属性的调用:对象名.属性名
def __init__(self, make, model, year):
self.make = make # 制造商
self.model = model # 型号
self.year = year # 出厂年份
self.odometer = 0 # 里程表读数,默认为0
"""
属性:
- make (str): 汽车的制造商或品牌,例如 "Toyota"、"Honda" 等。
- model (str): 汽车的具体型号,例如 "Corolla"、"Civic" 等。
- year (int): 汽车的出厂年份,例如 2022、2023 等。
- odometer (int): 汽车的里程表读数,初始值为 0。
"""
4.这个Car类的方法
方法的调用:对象名.方法名()
def display_info(self):
print(f"Car: {self.year} {self.make} {self.model}")
def read_odometer(self):
print(f"This car has {self.odometer} miles on it.")
def update_odometer(self, mileage):
if mileage >= self.odometer:
self.odometer = mileage
else:
print("You can't roll back an odometer!")
def increment_odometer(self, miles):
self.odometer += miles
"""
方法:
- __init__(self, make, model, year):
构造方法,初始化汽车的制造商、型号、年份和里程表读数。
- display_info(self):
打印汽车的制造商、型号和年份信息。
- read_odometer(self):
打印当前汽车的里程表读数。
- update_odometer(self, mileage):
更新汽车的里程表读数。如果提供的 mileage 大于或等于当前里程表读数,则更新里程表;否则打印一条提示信息。
- increment_odometer(self, miles):
增加汽车的里程表读数,将当前里程表读数增加指定的英里数 (miles)。
"""