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

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.xdnf.cn/news/138583.html

相关文章:

  • HTMLCSS模板实现水滴动画效果
  • 通讯的基础概念:涵盖串行通信、并行通信、TCP、UDP、Socket 等关键概念和技术
  • VRRP与防火墙双机热备实验
  • HW蓝队开源网络流量分析工具 -- TrafficEye
  • 计组1.3——计算机的性能指标
  • Axure疑难杂症:详解设置选中与选中效果(玩转选中)
  • Codeforces Round 1020 (Div. 3)(题解ABCDEF)
  • deep鼠标跟随插件
  • 北斗导航 | 北斗卫星导航单点定位与深度学习结合提升精度
  • 软考【网络工程师】2023年11月上午题答案解析
  • 数据库MySQL学习——day4(更多查询操作与更新数据)
  • 如何设置极狐GitLab 议题截止日?
  • 开源项目实战学习之YOLO11:ultralytics-cfg-datasets-Objects365、open-images-v7.yaml文件(六)
  • ADW600模块:40%体积缩减+多回路智能计量,工业节能的“隐形管家”
  • Docker安装(Ubuntu22版)
  • 【计算机视觉】CV实践- 基于PaddleSeg的遥感建筑变化检测全解析:从U-Net 3+原理到工程实践
  • 什么是 MCP?与 AI Agent 的关系是什么?
  • 14.ArkUI Radio的介绍和使用
  • 实验4:列表与字典应用
  • 机器视觉的胶带模切应用
  • 含锡废水处理的经济效益
  • 【Test】单例模式❗
  • 支持Function Call的本地ollama模型对比评测-》开发代理agent
  • python21-循环小作业
  • 命名空间(C++)
  • 在Dify中创建自定义Drools工具
  • 泽众TestOne精准测试:助力软件开发质量新升级
  • NEGATIVE LABEL GUIDED OOD DETECTION WITH PRETRAINED VISION-LANGUAGE MODELS
  • LeetCode 每日一题 2845. 统计趣味子数组的数目
  • 70.评论日记