zoukankan      html  css  js  c++  java
  • python继承

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

    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: 乘方
    爱,就是你和某个人一起经历的一切。
  • 相关阅读:
    Android的数据存储
    Servlet第一天
    JavaScript高级程序设计读书笔记(3)
    Interesting Papers on Face Recognition
    Researchers Study Ear Biometrics
    IIS 发生意外错误 0x8ffe2740
    Father of fractal geometry, Benoit Mandelbrot has passed away
    Computer vision scientist David Mumford wins National Medal of Science
    Pattern Recognition Review Papers
    盒模型bug的解决方法
  • 原文地址:https://www.cnblogs.com/afly-8/p/13561148.html
Copyright © 2011-2022 走看看