当前位置: 首页 > news >正文

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)。
"""

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux指令ros学习python深度学习bug学习笔记
  • 景区客流统计系统提升服务精准度
  • 深入理解Session和Cookie的作用与联系
  • 《汇编语言 基于x86处理器》- 读书笔记 - Visual Studio 2019 配置 MASM环境
  • 产品经理-一份标准需求文档的8个模块(14)
  • 亚信安全发布2024年第24期《勒索家族和勒索事件监控报告》
  • LabVIEW比例压力控制阀自动测试系统
  • 前端学习常用技术栈
  • 物流EDI:马士基IFTMBF 订舱请求
  • js实现一键任意html元素生成截图功能
  • 洛阳建筑设计资质市场未来趋势
  • Web 中POST为什么会发送两次请求
  • Java反射和动态代理用法(附10道练习题)
  • C++ 入门基础:开启编程之旅
  • C语言------指针讲解(2)
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 0x05 Python数据分析,Anaconda八斩刀
  • java中的hashCode
  • JDK9: 集成 Jshell 和 Maven 项目.
  • MQ框架的比较
  • React Transition Group -- Transition 组件
  • Redash本地开发环境搭建
  • SpriteKit 技巧之添加背景图片
  • zookeeper系列(七)实战分布式命名服务
  • 搭建gitbook 和 访问权限认证
  • 好的网址,关于.net 4.0 ,vs 2010
  • 检测对象或数组
  • 如何实现 font-size 的响应式
  • 一份游戏开发学习路线
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 整理一些计算机基础知识!
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #define、const、typedef的差别
  • (1)STL算法之遍历容器
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (超详细)语音信号处理之特征提取
  • (二)windows配置JDK环境
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (力扣题库)跳跃游戏II(c++)
  • (利用IDEA+Maven)定制属于自己的jar包
  • (七)理解angular中的module和injector,即依赖注入
  • (区间dp) (经典例题) 石子合并
  • (三)终结任务
  • (算法)区间调度问题
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)visual stdio 书签功能介绍
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .Net core 6.0 升8.0
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • @NotNull、@NotEmpty 和 @NotBlank 区别