python中面向对象有什么特点
一:问题
python中面向对象有什么特点?
二:回答
python同其他面向对象语言一样,有3个特征:封装、继承、重写
简单理解就是:
封装:把一系列属性和操作封装到一个方法里面,这样想要实现某种效果,只需要简单的调个方法名字就行了,不需要在写一遍所有的操作内容
继承:简单理解就是拼爹,父辈拥有的财富,你直接继承就能用,比如父辈有结婚这个方法,你继承来了,别人要白手起家结婚,你直接拿父辈的资产结婚
重写:简单理解就是拼爹得来的东西,在你这一辈有一些地方不适用了,要与时俱进,把父辈留给你的改一改,这样你的生活比父辈更加丰富多彩,即多态,比如父辈结婚的方法写的是用拖拉机结婚,到你这里还是结婚但是换成了小汽车结婚了
1 class Father(object):
2 def get_married(self,name="老爸"):
3 print(name)
4 print("用拖拉机结婚!")
5 print("彩礼三大件", ["自行车", "电视机", "缝纫机"])
6
7 class Child(Father):
8 def get_married(self,name="儿子"):
9 print(name)
10 print("用小汽车结婚!")
11 print("彩礼三大件", ["车子", "房子", "票子"])
12
13 if __name__ == "__main__":
14 clild = Child()
15 clild.get_married("小明")
16
17 >>> 运行结果如下:
18 >>> 小明
19 >>> 用小汽车结婚!
20 >>> 彩礼三大件 ['车子', '房子', '票子']
三:关于python函数重载的说明
重载的条件是:
①一个类里面
②方法名称相同
③参数不同
事实上按照这样的条件,在python中是不建议这样的写法,结果是一个类里面如果出现多个重名的方法,会覆盖掉先写的方法。
那python的重载怎么办,可以这样理解,这里方法的参数不同,存在2种情况:参数类型不同、参数个数不同
而在python里对参数的类型没有强制限制,你可以不写参数的类型,参数的个数又可以接受可变参数,所以python其实不需要重载这个概念。
如下图所示:用一个方法就能实现多个方法重载的效果
1 class Child():
2 def info(self,name="儿子",age=0):
3 print(name,age)
4
5 if __name__ == "__main__":
6 clild = Child()
7 #没传参
8 clild.info()
9 #传1个参数
10 clild.info("小明")
11 #传2个参数
12 clild.info("小明",28)
13
14 >>> 程序运行结果如下:
15 >>> 儿子 0
16 >>> 小明 0
17 >>> 小明 28
python中面向对象有什么特点的更多相关文章
- python中面向对象元类的自定义用法
面向对象中的常用方法 1.instance 和 issubclass instance :判断两个对象是不是一类 issubclass :判断某个类是不是另一个类的子类 #两个常用方法的使用 clas ...
- Python中面向对象初识到进阶
面向对象初识到进阶 # 面向对象结构: # class 类名: # def __init__(self,参数1,参数2): # self.对象的属性1 = 参数1 # self.对象的属性2 = 参数 ...
- python中面向对象
一.Python经典类与新类 经典类:如果没有直接或间接的子类化一个对象,也就是说如果没有指定一个父类,或者是如果子类化的基本类没有父类,那么就定义了经典类: class classics: 'def ...
- Python中面向对象的概念
1.语言的分类 1)面向机器 抽象成机器指令,机器容易理解.代表:汇编语言. 2)面向过程 做一件事,排除步骤,第一步做什么,第二步做什么,如果出现A问题,做什么处理,出现b问题,做什么处理.问题规模 ...
- Python中面向对象和类
目录 面向对象 类的定义 类的访问 类的属性和方法 继承和多态 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的. 面向对象: 类(C ...
- python 中面向对象的概念
原文 域和作用空间 本地域,函数域(nonlocal)和 全局域(global) def scope_test(): def do_local(): spam = "local spam&q ...
- python 中面向对象编程的几个概念
Python super() 函数 super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会 ...
- python 中面向对象编程简单总结3--定制类
声明:资源来自慕课网python学习课程,以下只是个人学习总结,仅供参考 1.Python类的特殊方法 特征:以 __ 开头并结尾的方法,比如用于print的__str__() , __getatt ...
- python 中面向对象编程简单总结2
1.python中继承的特点: (1)总是从一个类继承,默认为object类 (2)不要忘记调用super.__init__方法来初始化父类的方法 def __init__(self,args): s ...
- python中面向对象_类_对象的概念与定义
1. 面向对象的概念,面向对象是一种编程思想. 是对现实世界中一类事物的抽象,在编程中可以理解为是一种建立现实世界事物的模型 2. 面向对象和面向过程的区别: 面向过程关注的是完成工作的步骤. 面向 ...
随机推荐
- python教程 入门学习笔记 第2天 第一个python程序 代码规范 用默认的IDLE (Python GUI)编辑器编写
四.第一个python程序 1.用默认的IDLE (Python GUI)编辑器编写 2.在新建文件中写代码,在初始窗口中编译运行 3.写完后保存为以.py扩展名的文件 4.按F5键执行,在初始窗口观 ...
- 快速掌握Vue3:速成Vue3前端开发看这篇就够啦
一.Vue基本概念 1.1-Vue3的优点 Vue3支持Vue2额大多数特性. 更好的支持TypeScript. 打包大小减少41%. 初次渲染快55%,更新渲染快133%. 内存减少54%. 使用p ...
- webpack是如何处理css/less资源的呢
上一篇文章 体验了webpack的打包过程,其中js文件不需要我们手动配置就可以成功解析,可其它类型的文件,比如css.less呢? css-loader 首先,创建一个空文件夹,通过 npm ini ...
- [git]记配置本地git到gitlab并推送
前言 gitlab仓库地址:git@192.168.0.12:godev/gohello.git 步骤 # 配置用户 git config --global user.name "zhang ...
- 最常用的Linux命令
1. tar 创建一个新的tar文件 $ tar cvf archive_name.tar dirname/ 解压tar文件 $ tar xvf archive_name.tar 查看tar文件 $ ...
- [刺客伍六七&黑客] 魔刀千刃
魔刀千刃的特写 诞生之日:2023.7.29 此后会在此记录如何自己写一个自己的python库以及魔刀千刃的维护过程. 魔刀千刃(evilblade) **只攻不防,天下无双** 实战 (和堆攻击帖子 ...
- lea指令调用
lea指令(Load Effective Address)在x86汇编语言中的作用是将一个有效地址(即一个内存地址或寄存器地址的偏移量)加载到目标寄存器中,而不是加载一个实际的内存值. lea指令的使 ...
- Auto-GPT免费尝鲜之初体验-使用攻略和总结
写在前面的废话 ChatGPT 的交互模式,是和一个 "人" 对话聊天. 如果你想了解更多ChatGPT和AI绘画的相关知识,请参考:ChatGPT注册和变现思路,AI绘画教程汇总 ...
- MySQL允许远程登录的授权方法
泛授权方式 数据库本地直接登录上数据库: mysql -h localhost -u root 然后执行以下命令,授权完后直接就可以远程连接上.mysql>GRANT ALL PRIVILEGE ...
- 全景VR KRPano项目打包成安卓APP快速简易教程
有时候,我们可能不想把我们制作的全景VR项目发布到网站上,而是想把它作为一个手机应用来使用或者分享.这样,我们就可以更好地保护我们的作品,也可以更方便地展示给客户或者朋友.本文将介绍一种简单的方法,让 ...