一:问题
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