python继承

核能气质少年 提交于 2019-12-26 01:20:58

继承介绍:
继承就是让类和类之间产生父子关系,子类可以拥有父类的静态属性和方法。

python中的继承分为单继承多继承

python的单继承:
先定义一个人的类;自我介绍,姓名,年龄,体重

class Person:
    # 定义基本属性
    name = ''
    age = 0
    # 定义私有属性,私有属性在类外部无法直接进行访问
    __weight = 0
    # 构造方法
    def __init__(self,name,age,weight):
        self.name = name
        self.age = age
        self.weight = weight
    def msg(self):
        return '{}说:我{}岁'.format(self.name,self.age)
# 继承
class LiMing(Person):
    gerden = ''
    def __init__(self,name,age,gerden,weight):
        #调用父类的构造函数
        Person.__init__(self,name,age,weight)
        self.gerden = gerden
    # 重写父类msg方法
    def msg(self):
        return '{}说:我{}岁,性别{},体重{}KG'.format(self.name,self.age,self.gerden,self.weight)
liming = LiMing('李明',18,'男',56)
print(liming.msg())

#执行结果:李明说:我18岁,性别男,体重56KG

python的多继承:

class Introduction:#自我介绍类
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def msg(self):
        print('我是{},今年{}岁'.format(self.name,self.age))
class Active:#行动类
    def __init__(self,song):
        self.song = song
    def Listen(self):
        print('我喜欢听{}'.format(self.song))
class XiaoMing(Introduction,Active):#小明类继承以上两类
    def __init__(self,name,age,song):
        Introduction.__init__(self,name,age)
        Active.__init__(self,song)
test = XiaoMing('小明',25,'七里香')# 实现小明类调用两个父类的方法
test.msg()
test.Listen()

#我是小明,今年25岁 
#我喜欢听<<七里香>>

方法重写
父类的方法

class Parent:        # 定义父类
   def myMethod(self):
      print ('调用父类方法')
 
class Child(Parent): # 定义子类
   def myMethod(self):
      print ('调用子类方法')
 
c = Child()          # 子类实例
c.myMethod()         # 子类调用重写方法
super(Child,c).myMethod() #用子类对象调用父类已被覆盖的方法

super()方法

class A:
     def add(self, x):
         y = x+1
         print(y)
class B(A):
    def add(self, x):
        super().add(x)
b = B()
b.add(2)  # 3

类的专有方法:

  • init : 构造函数,在生成对象时调用
  • del : 析构函数,释放对象时使用
  • repr : 打印,转换
  • setitem : 按照索引赋值
  • getitem: 按照索引获取值
  • len: 获得长度
  • cmp: 比较运算
  • call: 函数调用
  • add: 加运算
  • sub: 减运算
  • mul: 乘运算
  • truediv: 除运算
  • mod: 求余运算
  • pow: 乘方
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!