python——面向对象编程

一、编程思想

面向过程编程(典型:c语言):是一种以过程为中心的编程思想。它强调流程化、线性化、步骤化的思考方式,实现思路就是函数。

面向对象编程:强调整体性和差异性。它将任何事物看做一个统一整个,行为的多样性和多态性,还有程序可扩展性。面向对象四大特征:抽象,封装,继承,多态。

二、类和对象

其实是一类事物的统称或概况,是一种归纳,类是对象抽象出来的概念。

对象就是现实真实存在的,可以具体来描述。

三、类的创建

语法:

class   类名:

        类的属性(特征)

        类的方法(行为)

说明:

  • 类名称、类属性、类方法都属于python标识符,需要遵守标识符规范
  • 类属性本质就是变量
  • 类方法本质就是函数

1、类的构造方法 

1)类中构造方法名称都是固定的。只能是 __init__ (init左右两边是双下划线),名称不可以修改。如果在类定义时候添加这个构造方法,每当创建类的对象时(类实例化),python解释器会自动调用该构造方法。构造可以包含多个参数,但是第一参数必须包含self参数。(self是python中默认写法)。

2)构造方法不能加返回值(构造方法中,不能使用return语句)。

3)当前类中是否编写构造方法,实例化类的对象时,默认都会调用构造方法。python类的构造方法有且只有一个。

4)构造方法作用:

  1. 用来实例化类
  2. 用来初始化类的属性

2、类的析构方法

析构方法作用:用于资源的回收,释放对象所占用的资源。

析构方法注意事项:

析构方法名称是固定。只能是__del__(del左右两边是双下划线),不能修改。

若在类中定义该方法,每当创建一个类的对象时,使用完成后,python解释器自动调用析构方法。

四、self的含义

self表示类实例化的对象本身,谁调用类中方法、属性,self就表示谁。

总结:

  1. self这个参数不需要手动进行传参,当某个对象调用方法时,python解释器会自动把该对象本身作为参数传递给self这个形参。
  2. self也可以改名称,self只是python中默认写法。一般都不会修改。

五、面向对象编程的三大特征

1、封装

定义:封装是隐藏对象的属性和方法实现细节,对外部仅仅提供公共访问的方式。

2、继承

继承就是子类继承父类的属性(特征)和方法(行为),使得子类具有父类的相同属性和方法。当然,子类还可有个性属性,个性方法。

继承好处:

  1. 继承能够提升代码的重用率,编写一个类,可以在多个子类中直接使用;
  2. 能够有效进行代码管理。当某个类有问题需要修改时,需要修改这个类中方法即可,其他子类无需修改。

如何实现继承?

继承是一种创建新类的方式。当我们定义一个类的时候,可以继承某个现有的类。

语法:

class   子类名称(父类名称):

        pass

多继承:

 子类同时可以继承多个父类。

语法:

class   子类(父类1,父类2,父类3,...):

        pass

3、多态

作用:具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。

六、实例

# 对象:计算器
# 功能:+-*/清零
class Caculator:def __init__(self,a,b):self.numa=int(a)self.numb=int(b)def add(self):print(f'{self.numa}+{self.numb}={self.numa+self.numb}')def sub(self):print(f'{self.numa}-{self.numb}={self.numa-self.numb}')def mul(self):print(f'{self.numa}*{self.numb}={self.numa*self.numb}')def div(self):print(f'{self.numa}/{self.numb}={self.numa/self.numb}')def cl(self):return 0def run(self):print('欢迎使用计算器')while True:choice=int(input('请输入功能:1加2减3乘4除5清零6退出系统'))if choice==1:self.add()elif choice==2:self.sub()elif choice==3:self.mul()elif choice==4:self.div()elif choice==5:self.cl()elif choice==6:exit=input('您是否确认退出 y是,n否')if exit=='y':print('欢迎下次访问')breakelse:warn = input("您的输入非法,是否重新输入:y是,n否")if warn == "n":print("欢迎下次使用!")breakreturn Falseif __name__ == '__main__':while True:print('欢迎使用计算器')data1 = int(input('请输入第一个操作数据'))data2 = int(input('请输入第二个操作数据'))use=Caculator(data1,data2)use.run()continueexit = input('您是否确认退出 y是,n否')if exit == 'y':print('欢迎下次访问')break

 

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

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

相关文章

宿主机和容器 ping 不通域名解决方法

目录 一、问题描述 二、宿主机解决方法 三、容器解决办法 一、问题描述 宿主机是Ubuntu,在宿主机上 ping 不通域名:xxxx.cn,但是个人电脑能 ping 通。 同时宿主机上的启动的k8s容器也无法ping通。 二、宿主机解决方法 ①编辑文件&#xff…

windows作业job介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、作业job是什么?二、使用步骤1.代码示例 总结 前言 提示:这里可以添加本文要记录的大概内容: winapi网站: h…

ESG跨境电商如何为国内的跨境电商企业打开国外的市场

现在不管是国内还是国外,做电商的企业都非常的多,那么既然有这么多大电商公司,就要有为这些电商公司提供服务的公司,这就是ESG,它是专门为跨境电商服务的公司,那么这家公司的主要业务是什么呢?它…

龙虎榜——20250425

指数依然在震荡,等待方向选择,整体量能不搞但个股红多绿少。 2025年4月25日龙虎榜行业方向分析 一、核心主线方向 绿色电力(政策驱动业绩弹性) • 代表标的:华银电力(绿电运营)、西昌电力&…

大数据学习(112)-HIVE中的窗口函数

🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…

【MySQL】MySQL索引与事务

目录 前言 1. 索引 (index) 1.1 概念 1.2 作用 1.3 使用场景 1.4 索引的相关操作 查看索引 创建索引 删除索引 2. 索引背后的数据结构 2.1 B树 2.2 B+树的特点 2.3 B+树的优势 3. 事务 3.1 为什么使用事务 3.2 事…

python21-循环小作业

课程:B站大学 记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化 循环语句小作业 for-in作业斐波那契 for 固定数值计算素数字符统计数字序列range 函数 水仙花…

深度学习小记(包括pytorch 还有一些神经网络架构)

这个是用来增加深度学习的知识面或者就是记录一些常用的命令,会不断的更新 import torchvision.transforms as transforms toPIL transforms.ToPILImage()#可以把tensor转换为Image类型的 imgtoPIL(img) #利用save就可以保存下来 img.save("/opt/data/private/stable_si…

Neo4j 可观测性最佳实践

Neo4j 介绍 Neo4j 是一款领先的图数据库管理系统,采用图数据模型来表示和存储数据。它以节点、关系和属性的形式组织数据,节点代表实体,关系表示节点间的连接,属性则为节点和关系附加信息。Neo4j 使用 Cypher 查询语言&#xff0…

算法训练营第三十天 | 动态规划 (三)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、01背包问题理论基础(一)动态规划五部曲确定dp数组以及下标的含义确定递推公式初始化dp数组确定遍历顺序 二、01背包问题理论基础&#…

玩机搞机基本常识-------小米OLED屏幕机型怎么设置为永不休眠_手机不息屏_保持亮屏功能 拒绝“烧屏” ?

前面在帮一位粉丝解决小米OLED机型在设置----锁屏下没有永不休眠的问题。在这里,大家要明白为什么有些小米机型有这个设置有的没有的原因。区分OLED 屏幕和 LCD屏幕的不同。从根本上拒绝烧屏问题。 OLED 屏幕的一些优缺点💝💝💝 …

PostgreSQL使用LIKE右模糊没有走索引分析验证

建表&数据初始化可参考PostgreSQL 分区表——范围分区SQL实践 背景: 给t_common_work_order_log的handle_user_name新建索引后,使用LIKE右模糊匹配查询时,发现走的全表扫描 CREATE INDEX order_log_handle_user_name_index ON t_commo…

【vue】【element-plus】 el-date-picker使用cell-class-name进行标记,type=year不生效解决方法

typedete&#xff0c;自定义cell-class-name打标记效果如下&#xff1a; 相关代码&#xff1a; <el-date-pickerv-model"date":clearable"false":editable"false":cell-class-name"cellClassName"type"date"format&quo…

《Learning Langchain》阅读笔记8-RAG(4)在vector store中存储embbdings

什么是 vector store&#xff1f; 与专门用于存储结构化数据&#xff08;如 JSON 文档或符合关系型数据库模式的数据&#xff09;的传统数据库不同&#xff0c;vector stores处理的是非结构化数据&#xff0c;包括文本和图像。像传统数据库一样&#xff0c;vector stores也能执…

用api的方式调用本地下载好的大模型(以llama为例,不是ollama!!!)

目录 1、创建虚拟环境2、激活虚拟环境3、安装相关库4、编写脚本&#xff08;test.py&#xff09;调用脚本5、bash中测试通信完美结果 1、创建虚拟环境 conda create -n myenv python3.12 -y2、激活虚拟环境 conda activate myenv3、安装相关库 pip install vllm fastapi uvi…

算力网络(CFN)在跨校联合科研中的应用:安全性挑战与联邦调度实践

引言&#xff1a;科研协作的算力困境 上海交通大学与麻省理工学院联合开展的高能物理模拟实验&#xff0c;因算力资源分配不均导致部分节点连续72小时处于空转状态。这个典型案例揭示了当前跨机构科研协作的痛点&#xff1a;‌算力资源无法实现安全可信的细粒度共享‌。算力网…

高防IP+CDN组合:电商大促的“双保险”防护方案

引言 电商大促期间&#xff0c;平台流量呈爆发式增长&#xff0c;既要应对瞬时激增的访问量&#xff0c;又要防范黑客趁机发起的DDoS攻击、恶意爬虫等威胁。单一防护手段往往难以兼顾性能与安全&#xff0c;而高防IPCDN组合通过“流量清洗加速分发”的双重机制&#xff0c;为电…

# 构建词汇表:自然语言处理中的关键步骤

构建词汇表&#xff1a;自然语言处理中的关键步骤 在自然语言处理&#xff08;NLP&#xff09;任务中&#xff0c;词汇表&#xff08;Vocabulary&#xff09;是文本数据预处理的核心组件之一。它将文本中的单词或字符映射为数值索引&#xff0c;从而让计算机能够理解和处理语言…

SQL进阶知识:七、数据库设计

今天介绍下关于数据库设计的详细介绍&#xff0c;并结合MySQL数据库提供实际例子。 数据库设计是确保数据库能够高效、安全地存储和管理数据的关键环节。良好的数据库设计可以提高查询性能、减少数据冗余、确保数据完整性&#xff0c;并简化数据维护。以下是关于数据库设计的详…

python如何取消word中的缩进

在python-docx中&#xff0c;取消缩进可以通过将相应的缩进属性设置为None或0来实现。以下是取消不同类型缩进的方法&#xff1a; 取消左缩进 from docx import Documentdoc Document(existing_document.docx)for paragraph in doc.paragraphs:# 取消左缩进paragraph.paragr…