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

    1. Python继承

    继承表示允许我们继承另一个类的所有方法和属性的类。

    父类是继承的类,称基类。

    子类是从另一个类继承类,称派生类。

    2. 创建父类

    任何类都可以是父类。

    实例

    创建一个 Person 类,其中包含 firstname lastname 属性以及 printname 方法。

    class Person():
        def __init__(self, fname, lname):
            self.firstname = fname
            self.lastname = lname
    
        def printname(self):
            print(self.firstname, self.lastname)
    
    x = Person('Bill', 'Gates')
    x.printname()

    Bill Gates

    3. 创建子类

    创建子类时将父类作为参数发送:

    实例

    创建一个 Student 类,将从 Person 类继承属性和方法。

    class Student(Person):
        pass

    现在,Student 类与 Person 类有相同的属性和方法。

    注释:不想在类中使用其他属性或方法,使用 pass 关键字。

    class Person():
       def __init__(self, fname, lname):
          self.firstname = fname
          self.lastname = lname
    
       def printname(self):
          print(self.firstname, self.lastname)
    
    class Student(Person):
       pass
    
    # 使用 Student 类创建一个对象,执行 printname方法
    x = Student('wang', 'ke')
    x.printname()

    wang ke

    4. 添加 __init__() 函数

    我们已经创建一个子类,它继承了父类的属性和方法。

    下面我们把  __init__() 函数添加到子类。

    注释:每次使用类创建新对象,都会调用 __init__() 函数

    实例

    Student 类添加 __init__() 函数:

    class Student(Person):
        def __init__(self, fname, lname):
            # 添加属性

    当添加 __init__() 函数时,子类将不再继承父的 __init__() 函数

    注释:子类的 __init__() 函数会覆盖父类的 __init__() 函数。如需保持父类的 __init__() 函数,添加对父类 __init__() 函数的调用。

    实例

    class Person():
        def __init__(self, fname, lname):
            self.firstname = fname
            self.lastname = lname
    
        def printname(self):
            print(self.firstname, self.lastname)
    
    class Student(Person):
        def __init__(self, fname, lname):
            Person.__init__(self, fname, lname)
    
    x = Student('wang', 'ke')
    x.printname()
    x = Person('Bill', 'Gates')
    x.printname()

    wang ke
    Bill Gates

    已经成功添加 __init__() 函数,并保留父类的继承,接下来在 __init__() 函数中添加功能。

    5. supper() 函数

    supper() 函数使子类从父类继承所有方法和属性:

    class Person():
        def __init__(self, fname, lname):
            self.firstname = fname
            self.lastname = lname
    
        def printname(self):
            print(self.firstname, self.lastname)
    
    class Student(Person):
        def __init__(self, fname, lname):
            super().__init__(fname, lname)
    
    x = Student('wang', 'ke')
    x.printname()

    wang ke

    使用 supper() 函数,不必使用父元素的名称,它将自动从父元素继承方法和属性。

    6. 添加属性

    把名为 graduationyear 的属性添加到 Student 类:

    class Person():
        def __init__(self, fname, lname):
            self.firstname = fname
            self.lastname = lname
    
        def printname(self):
            print(self.firstname, self.lastname)
    
    class Student(Person):
        def __init__(self, fname, lname):
            super().__init__(fname, lname)
            self.graduationyear = 2019
    
    x = Student('wang', 'ke')
    print(x.graduationyear)

    2019

    上例中,2019是一个变量,在创建 student 对象时传递到 Student 类。为此,在 __init__() 函数中添加另一个参数:

    class Person():
        def __init__(self, fname, lname):
            self.firstname = fname
            self.lastname = lname
    
        def printname(self):
            print(self.firstname, self.lastname)
    
    class Student(Person):
        def __init__(self, fname, lname, year):
            super().__init__(fname, lname)
            self.graduationyear = year
    
    x = Student("wang", "ke", 2019)
    print(x.graduationyear)

     2019

    7. 添加方法

    welcome 方法添加到 Student 类:

    class Person():
        def __init__(self, fname, lname):
            self.firstname = fname
            self.lastname = lname
    
        def printname(self):
            print(self.firstname, self.lastname)
    
    class Student(Person):
        def __init__(self, fname, lname, year):
            super().__init__(fname, lname)
            self.graduationyear = year
    
        def welcome(self):
            print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)
    x = Student("wang", "ke", 2019)
    x.welcome()

    Welcome wang ke to the class of 2019

    提示:如果在子类中添加一个与父类中的函数同名的方法,将覆盖父类方法的继承

  • 相关阅读:
    Nginx启动/停止服务和各种命令
    文件权限导致Weblogic Embedded LDAP Server启动失败解决办法
    jmeter(八)非图形界面、输出html报告
    jmeter(七)服务器监控
    python中如何把一段文字中的空格替换成换行符
    jmeter(五)jpgc插件的使用
    jmeter(四)提取响应结果
    Jmeter (三)变量、参数化、函数
    jmeter(二)录制脚本
    Jmeter(一)发送http请求
  • 原文地址:https://www.cnblogs.com/keye/p/15046883.html
Copyright © 2011-2022 走看看