0基础学python-14:python进阶之面向对象
前言
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 # 里程表读数,默认为0def 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 = mileageelse: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 = mileageelse: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)。
"""