首页 > 编程语言 >python中面向对象有什么特点

python中面向对象有什么特点

时间:2023-11-28 13:23:51浏览次数:45  
标签:__ name python 特点 面向对象 参数 print clild

一:问题

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

 

标签:__,name,python,特点,面向对象,参数,print,clild
From: https://www.cnblogs.com/miaomiaokaixin/p/17861722.html

相关文章

  • python面向对象方法与属性
    一:描述python中面向对象方法与属性:①静态变量:实例变量、类变量②静态方法:@staticmethod,相当于被放到类里的函数③私有属性和方法:以两个下划线开头,如__secret()④魔术方法:以两个下划线开头且以两个下划线结尾,如__secret__()⑤受保护的属性和方法:以一个下划线开头,如_secret()⑥特殊......
  • python对象嵌套
    一、描述python对象嵌套,即包含的关系。python实现:班级(名字,多个学生)、学生(学号,姓名) 二、详细说明要想实现班级里含有多个学生的这种关系,可以在班级类里嵌套学生类,将学生类信息以列表的形式存储保存即可1classStudent:2def__init__(self,s_no,s_name):3......
  • python虚拟环境
    一:问题我下了别人的工程,工程环境是用全局的python环境好,还是弄一个虚拟环境好一点,为什么? 二:回答用虚拟环境好,因为能够实现环境分离,你能在虚拟环境中安装项目特定的依赖项,而不会影响全局Python环境。从而实现不同项目维护不同的依赖关系,而不必担心版本冲突或相互影响。具体操......
  • python函数返回多个值会打包成元组
    一:问题python中函数可以一次返回多个值么? 二:回答可以的,其一次返回的多个值会被打包成元组如下所示:defdemo2(name,age):content=f"nameis{name},ageis{age}"returnname,age,contentif__name__=="__main__": data=demo2("mmkx",20) pri......
  • python函数return会结束整个函数的执行
    一:问题python函数中有for循环,对for循环进行return,函数会继续往下执行么? 二:回答不会。如下所示:defdemo3():print("a")foriinrange(3):print(i)returniprint("b")defdemo4():print("a")foriinran......
  • python中lambda函数如何理解
    一:问题python中lambda函数如何理解? 二:回答如下所示:defadd(a,b):returna+bdata=lambdaa,b:a+bif__name__=="__main__": print(add(3,4)) print(data(3,4))>>>运行结果如下:>>>7>>>7这里lambda函数,可以这样理解:lambda替代了上面的d......
  • python中调用函数,只写一个函数名是什么意思?
    一:问题python中调用函数,只写一个函数名是什么意思? 二:回答只写函数名,则调用的是函数的地址写函数名并传参,则调用的是函数返回值举例说明:1test_data=[{"name":"李白","order":1},{"name":"杜甫","order":4},2{"name":"高力士",......
  • 带有最小间隔时间的队列读取实现 —— 最小等待时间的队列 —— Python编程
     (注:照片源自免费网站,地址:https://www.freepik.com/photos/angry-panda/13)  ==================================================  事情起源是最近在看一个TensorFlow的代码,是TensorFlow实现了一个最小等待时间的队列,解释一下就是一个进程阻塞在一个队列上等待数据的读取,但是......
  • python通过requirements.txt文件管理工程包
    一:问题你创建了一个python工程,里面有很多包,怎么让别人拿到这个工程时,知道要安装哪些包,并一键自动全部安装呢? 二:解决方案你可以在你的工程中,执行下面的命令,它可以自动生成你的工程的依赖包清单:pipfreeze>requirements.txt别人拿到你的工程后,可以执行下面的命令,实现一键......
  • 【Lidar】基于Python的点云数据下采样+体素显示
    ​1Open3D库介绍        Open3D是一个开源的3D数据处理库,发布于2015年,目前已经更新到0.17.0版本。它基于MIT协议开源许可,使用C++11实现,并经过高度优化,还通过PythonPybinding提供了前端PythonAPI。Open3D为开发者提供了一组精心选择的数据结构和算法,内部实现高度优化......