0基础学python-14:python进阶之面向对象

news2024/9/21 22:32:09

前言

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1930497.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS开发中几个常见问题

前言 最近开始HarmonyOS应用开发,遇到一些小问题,也算是自己看官网文档没记住的东西,过程中再记录一下。 一、更改应用的名字和图标 对比看下Android工程中是如何更改的,只需要在清单文件AndroidManifest.xml中,更改…

机器学习 | 深入理解激活函数

什么是激活函数? 在人工神经网络中,节点的激活函数定义了该节点或神经元对于给定输入或一组输入的输出。然后,将此输出用作下一个节点的输入,依此类推,直到找到原始问题的所需解决方案。 它将结果值映射到所需的范围…

CSS综合案例(快报模块头部制作)

(大家好,今天我们将继续来学习CSS的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 一、前述 二、案例分析 1.样例参看 2.拆分分析 三、案例实施 一、前述 案例:快报模块头部制…

微信小程序基本语法

官网 https://developers.weixin.qq.com/miniprogram/dev/framework/ 视频教程:尚硅谷微信小程序开发教程,2024最新微信小程序项目实战! 仿慕尚花坊项目源码:https://gitee.com/abcdfdewrw/flower-workshop 目录 一,初…

热门软件缺陷管理工具2024:专业评测与建议

国内外主流的10款软件缺陷管理工具软件对比:PingCode、Worktile、禅道、Tapd、Teambition、Tower、JIRA、Bugzilla、MantisBT、Trac。 在软件开发过程中,管理缺陷和漏洞常常成为一项挑战,尤其是在项目规模庞大时。选择一个高效的软件缺陷管理…

C#实现自定义标签的设计和打印

背景:最近在进行资产盘点的时候,需要对固定资产设计标签并进行打印。 设计标签:选用的是Fastreport自带的,可拆包忌用的标签设计器;进行标签的模型设计。 软件解压后可直接进行使用。模板的设计基本都是无脑操作,拖拽控件按,放置到固定未知即可;我设计的模板如下: 说…

Vision Pro的增强视觉:企业级Unity插件包实现主摄像头访问

在AR和VR技术的快速发展中,Unity作为跨平台游戏和应用开发的首选引擎,其插件生态的丰富性一直是开发者们关注的焦点。最近,一个专为Vision Pro设计的Unity插件包——EnterpriseCameraAccessPlugin,因其能够通过企业API访问主摄像头的功能,引起了广泛关注。 一、插件背景与…

springboot+vue+mybatis鲜花管理系统+PPT+论文+讲解+售后

随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,鲜花管理系统当然也不能排除在外。鲜花管理系统是以实际运用为开发背景,运用软件工程开发方法,采用SSM技…

小阿轩yx-zookeeper+kafka群集

小阿轩yx-zookeeperkafka群集 消息队列(Message Queue) 是分布式系统中重要的组件 通用的使用场景可以简单地描述为 当不需要立即获得结果,但是并发量又需要进行控制的时候,差不多就是需要使用消息队列的时候。 消息队列 什么是消息队列 消息(Mes…

前端框架入门之Vue _el和data的两种写法 分析MVVM模型

目录 _el与data的两种写法 MVVM模型 _el与data的两种写法 查看vue的实例对象 我们在这边注释掉了el属性 这样的话div容器就绑定不了vue实例 当我们可以在这里写一个定时任务 然后再回头指定 这个mount有挂载的意思 就是把容器对象交给vue实例后 去给他挂载指定的对象 &…

MySQL 进阶(四)【锁】

1、锁 1.1、锁的概述 锁就不需要多介绍了,多个用户访问共享数据资源,如何保证数据并发访问的一致性、有效性是数据库最重要的问题。同时,锁冲突也是影响一个数据库并发性能最重要的因素。 MySQL 中锁的划分有三类: 全局锁&…

敏捷营销在AI智能名片微信小程序中的应用探索

摘要:在数字化转型的浪潮中,企业面临着前所未有的挑战与机遇。AI智能名片微信小程序作为一种创新的营销工具,以其便捷性、智能化和高效性,正逐步成为企业连接客户、推广品牌的新宠。然而,如何在快速变化的市场环境中&a…

Automation Anywhere推出新一代AI+自动化企业系统,助力企业实现10倍商业增长

RPA厂商纷纷进军AI Agent ( AI 代理)领域,陆续推出创新产品。最近,Automation Anywhere宣布推出其新的AI 自动化企业系统,该系统结合AI和自动化技术,以实现指数级的业务成果。 在Imagine 2024大会上首次亮相的这款新产品&#xf…

机器学习中的梯度下降

本文只是简单解释一下梯度下降,其中涉及到的公式并没有展示说明。 1.什么是梯度? 梯度也可以理解为导数。 在一维空间中:梯度就是导数,或者说对于一个线性函数,也就是线的斜率。 2.什么是梯度下降? 梯度是…

字典树实现

一、字典树 字典树(Trie树)是一种多叉树结构,每条边代表一个字符,从根节点到其它节点的路径构成一个单词。其具有较好的查询性能,可以用于有效地存储大量字符串,并支持高效的查找、插入和删除操作。 二、…

浏览器缓存:强缓存与协商缓存实现原理有哪些?

1、强缓存:设置缓存时间的,那么在这个时间内浏览器向服务器发送请求更新数据,但是服务器会让其从缓存中获取数据。 可参考:彻底弄懂强缓存与协商缓存 - 简书 2、协商缓存每次都会向浏览器询问,那么是怎么询问的呢&…

java 项目使用 acitiviti 流程引擎中的人员设置

学习目标: 目标 [ ]了解 java 项目使用 acitiviti 流程引擎中的人员设置 知识小记: - [x] 1、人员选择说明 - [x] 2、分配任务候选人 任务的候选人是指有权限对该任务进行操作的潜在用户群体,这个用户群体有权限处理(处理、完成)该任务…

第九课:服务器发布(静态nat配置)

一个要用到静态NAT的场景,当内网有一台服务器server1,假如一个用户在外网,从外网访问内网怎么访问呢,无法访问,这是因为外网没办法直接访问内网,这时候需要给服务器做一个静态NAT。 静态NAT指的是给服务器…

学习笔记——动态路由——IS-IS中间系统到中间系统(特性之路由泄漏)

3、路由泄漏 什么是路由泄漏? IS-IS路由协议允许路由信息的两级层次结构。可以有多个1级区域通过连续的2级主干互连。路由器可以属于1级、2级或两者。1级链路状态数据库仅包含有关该区域的信息。第2级链路状态数据库包含有关该级别以及每个第1级区域的信息。L1/L2…

Matlab|基于蒙特卡洛法的电动汽车充电负荷计算

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序方法复现《V2G 模式下含分布式能源的配电网优化运行研究》第二章电动汽车无序充电模型,按照文章《V2G 模式下基于复杂网络的电动汽车有序充电策略》分析思路研究了不同数量电动汽车接入情况…