类的继承
# 创建一个父类class Base_father:def __init__(self,name,age):self.name = nameself.age = ageprint('调用了父类的name')# 创建子类class Base_son(Base_father):def getname(self):print(f'姓名:{self.name}')print(f'年龄:{self.age}')return '运行完毕!!'num1 = Base_son('suliang',21)print(num1.getname())
运行结果:
如果重写了__ init __时,实例化子类,就不会调用父类已经定义的__ init __。
# 创建一个父类class Base_father: def __init__(self,name,age): self.name = name self.age = ageprint('调用了父类的name')# 创建子类class Base_son(Base_father):def __init__(self,name,age):self.name = nameself.age = ageprint('调用了我自己定义的方法!!')def getname(self):print(f'姓名:{self.name}')print(f'年龄:{self.age}')return '运行完毕!!'num1 = Base_son('suliang',21)print(num1.getname())
如果重写了__ init __ 时,要继承父类的构造方法,可以使用 super关键字。语法:super(子类,self).__ init __(参数)
# 创建一个父类class Base_father:def __init__(self,name,age):self.name = nameself.age = ageprint('调用了父类的name')# 创建子类class Base_son(Base_father):def __init__(self,name,age):#利用super调用父类的构造函数super(Base_son, self).__init__(name ,age)print('-'*50)self.name = nameself.age = ageprint('调用了我自己定义的方法!!')def getname(self):print(f'姓名:{self.name}')print(f'年龄:{self.age}')return '运行完毕!!'num1 = Base_son('suliang',21)print(num1.getname())
class Father:def __init__(self,name):self.name = namedef list(self):print(f'name:{self.name}')class Son(Father):def list(self):print(f'姓名:{self.name}')return '执行完毕!!'num1 = Son('suliang')print(num1.list())
运行结果:
构造函数
__init__(self[,args])
__del__(self)
__repr__(self)
__str__(self)
对象比较 __cmp__(self,x)
方法重载的具体方法将在下一章进行详细介绍。在此之作简单说明!! 类的属性和方法() 类的私有属性
在定义类的属性时,在前面加入__(两个下划线)即代表私有属性,只能在类的内部调用,而不能在外部调用。
class List:a = 5 #类的公有属性__b = 6 #类的私有属性obj = List()print(obj.a)print(obj.__b)运行结果:
类的私有方法
在定义方法时,在前面加入 __ (两个下划线)即可定义一个私有方法,只能在类的内部调用,语法为self.__方法名
class List:def __init__(self ,a,b ):self.a = aself.b =bdef pri1(self):# 定义一个公有方法print(f'{self.a + self.b}')return ' 'def __pri2(self):# 定义一个私有方法print(f'{self.a *self.b}')def pri3(self):self.__pri2() # 在内部调用私有方法return ' 'obj = List(5,10)print(obj.pri1())print(obj.pri3())运行结果:
面向对象中下划线的说明
_前面单下划线
以单下划线开头的表示的是protected 类型的变量,即保护类型只能允许其本身与子类进行访问。 _前面双下划线
双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。 _前面双下划线_
定义的是特殊方法,一般是系统定义名字 ,类似 __ init __() 之类的。
小结
本篇文章带大家了解了类的继承,方法的重写以及重载的内容。一顿操作下来是不是觉得并不难呢,当然这都是基础语法,深入的还需大家理解这其中的内涵,再慢慢的去实践。
往期回顾 分享
点收藏
点点赞
点在看
文章转发自AI科技大本营微信公众号,版权归其所有。文章内容不代表本站立场和任何投资暗示。
Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM