python基础:面向对象-继承。
2021/5/8 22:26:52
本文主要是介绍python基础:面向对象-继承。,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
这里写目录标题
- 一、单继承
- 二、多继承
- 三、子类重写父类同名方法和属性
- 四、多层继承
- 五、子类调用父类的同名方法和属性
- 六、私有权限
- 1.定义私有属性和方法
- 2.获取和修改私有属性值
在Python中,所有类默认继承object类,object类是顶级类或基类;其他子类叫做派生类。
一、单继承
单继承意思就是一个类同时继承了一个父类。
class Master(object): def __init__(self): self.kongfu='古法鸡蛋灌饼' def cook(self): print(f'运用{self.kongfu}做饼。') #Student继承了Master类 class Student(Master): pass lihua = Student() lihua.cook() #运用古法鸡蛋灌饼做饼。
二、多继承
多继承意思就是一个类同时继承了多个父类。
class Master(object): def __init__(self): self.kongfu='古法鸡蛋灌饼' def cook(self): print(f'运用{self.kongfu}做饼。') class School(object): def __init__(self): self.kongfu='正宗鸡蛋灌饼' def cook(self): print(f'运用{self.kongfu}做饼。') #Student继承了Master类 class Student(School,Master): pass lihua = Student() lihua.cook() #运用正宗鸡蛋灌饼做饼。
当一个类有多个⽗类的时候,默认使用第一个⽗类的同名属性和⽅法。
三、子类重写父类同名方法和属性
class Master(object): def __init__(self): self.kongfu='古法鸡蛋灌饼' def cook(self): print(f'运用{self.kongfu}做饼。') #Student继承了Master类 class Student(Master): def __init__(self): self.kongfu='创新鸡蛋灌饼' def cook(self): print(f'运用{self.kongfu}做饼。') lihua = Student() lihua.cook() #运用创新鸡蛋灌饼做饼。
⼦类和父类具有同名属性和方法,默认使⽤子类的同名属性和方法。
四、多层继承
class Master(object): def __init__(self): self.kongfu='古法鸡蛋灌饼' def cook(self): print(f'运用{self.kongfu}做饼。') class School(Master):#继承Master def __init__(self): self.kongfu='正宗鸡蛋灌饼' def cook(self): print(f'运用{self.kongfu}做饼') class Student(School):#继承School def __init__(self): self.kongfu='创新鸡蛋灌饼' def cook(self): print(f'运用{self.kongfu}做饼') #打印出继承顺序 print(Student.__mro__) #(<class '__main__.Student'>, <class '__main__.School'>, <class '__main__.Master'>, <class 'object'>)
五、子类调用父类的同名方法和属性
两种方法:super();父类.初始化/再调用
class Master(object): def __init__(self): self.kongfu='古法鸡蛋灌饼' def cook(self): print(f'运用{self.kongfu}做饼。') class School(Master): def __init__(self): self.kongfu='正宗鸡蛋灌饼' def cook(self): print(f'运用{self.kongfu}做饼') def make_master_cook(self): super().__init__() super().cook() class Student(School): def __init__(self): self.kongfu='创新鸡蛋灌饼' def cook(self): print(f'运用{self.kongfu}做饼') def make_school_cook(self):#调用 父类 super().__init__() super().cook() #调用 古法鸡蛋灌饼 def make_master_cook(self):#调用 祖父类 #方法一 super().make_master_cook() #方法二 Master.__init__(self) Master.cook(self) lihua = Student() lihua.make_school_cook()#调用 父类 lihua.make_master_cook()#调用 祖父类
打印结果:
六、私有权限
1.定义私有属性和方法
属性和方法前面加上 ‘__’(两条下划线)即可。
class Master(object): def __init__(self): self.kongfu='古法鸡蛋灌饼' #私有属性 self.__money = 4000 def cook(self): print(f'运用{self.kongfu}做饼。') #私有方法 def __make_money(self): print(self.__money) #Student继承了Master类 class Student(Master): pass lihua = Student() print(lihua.__money)#报错 lihua.__make_money()#报错
2.获取和修改私有属性值
利用实例方法 get_XX 来获取,用 set_XX 来修改。
class Master(object): def __init__(self): self.kongfu='古法鸡蛋灌饼' #私有属性 self.__money = 4000 def cook(self): print(f'运用{self.kongfu}做饼。') #获取私有属性值 def get_money(self): return self.__money #修改私有属性值 def set_money(self,new_money): self.__money=new_money #Student继承了Master类 class Student(Master): pass lihua = Student() print(lihua.get_money())#4000 lihua.set_money(100) print(lihua.get_money())#100
这篇关于python基础:面向对象-继承。的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程
- 2024-12-19Python股票自动化交易入门教程
- 2024-12-18Python量化入门教程:轻松掌握量化交易基础知识