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. 面向对象和面向过程的区别: 面向过程关注的是完成工作的步骤. 面向 ...
随机推荐
- 渗透-02:HTTPS主干-分支和HTTPS传输过程
一.HTTPS主干-分支 第一层 第一层,是主干的主干,加密通信就是双方都持有一个对称加密的秘钥,然后就可以安全通信了. 问题就是,无论这个最初的秘钥是由客户端传给服务端,还是服务端传给客户端,都是明 ...
- 随风迎 jmeter下TPS插件的安装(转)
1.下载插件http://pan.baidu.com/s/1mioVJni 2.解压下载的安装包: 将 jpgc-graphs-basic-2.0.zip 解压缩后只有一个 lib 目录,该目录下有一 ...
- Combobox后台绑定
本文主要介绍WPF中Combobox的后台绑定,我在这里主要讲解数据驱动 1.对于前台绑定,我们首先写出想要绑定的对象 新建一个Models文件夹,将Student类写入 public class S ...
- Python怎么通过url下载网络文件到本地
以下代码演示Python怎么从网络下载一个文件至本地并保存在当前文件夹download import os import requests from urllib.parse import urlpa ...
- JS遍历Json串并获取Key和Value
//data为json串 for (var key in data) { console.log(key); console.log(data[key]); }
- 入门篇-其之一-第一个Java程序
️注意: 本文中包含实际操作,需要安装JDK.如果需要安装JDK,请按照这篇文章的步骤进行安装:点我查看JDK安装教程 小白可以多看几遍这篇文章,多敲几次代码 前面我们已经安装了JDK,接下来就是写一 ...
- GDB苹果网页一键打包工具(IOS,IPA,苹果应用网页打包,WINDOWS平台)
工具简介 GDB苹果网页一键打包工具(IOS,IPA,苹果应用网页打包,Windows平台)可以把本地HTML项目或者网站打包为一个苹果应用IPA文件,无需编写任何代码,支持在苹果设备上安装运行.作为 ...
- HTML/网站一键打包APK工具(html网页打包安卓APP应用)
HTML一键打包APK工具使用说明 工具简介 HMTL一键打包APK工具可以把本地HTML项目或者网站打包为一个安卓应用APK文件,无需编写任何代码,也无需配置安卓开发环境,支持在最新的安卓设备上安装 ...
- 模拟.NET应用场景,综合应用反编译、第三方库调试、拦截、一库多版本兼容方案
免责声明 使用者本人对于传播和利用本公众号提供的信息所造成的任何直接或间接的后果和损失负全部责任.公众号及作者对于这些后果不承担任何责任.如果造成后果,请自行承担责任.谢谢! 大家好,我是沙漠尽头的狼 ...
- CF 下分记录
7.27 edu152 \(+173=2048\) B 没细看数据范围 WA 了一次 D 没判 \(i-1=0\) WA 了一次 E. Max to the Right of Min 考虑增大右端点, ...