最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

每日时讯!Python教程:类的派生

来源:博客园


【资料图】

一、派生

派生:子类中新定义的属性的这个过程叫做派生,并且需要记住子类在使用派生的属性时始终以自己的为准

1 派生方法一(类调用)

指名道姓访问某一个类的函数:该方式与继承无关

class OldboyPeople:    """由于学生和老师都是人,因此人都有姓名、年龄、性别"""    school = "oldboy"    def __init__(self, name, age, gender):        self.name = name        self.age = age        self.gender = genderclass OldboyStudent(OldboyPeople):    """由于学生类没有独自的__init__()方法,因此不需要声明继承父类的__init__()方法,会自动继承"""    def choose_course(self):        print("%s is choosing course" % self.name)class OldboyTeacher(OldboyPeople):    """由于老师类有独自的__init__()方法,因此需要声明继承父类的__init__()"""    def __init__(self, name, age, gender, level):        OldboyPeople.__init__(self, name, age, gender)        self.level = level  # 派生    def score(self, stu_obj, num):        print("%s is scoring" % self.name)        stu_obj.score = numstu1 = OldboyStudent("tank", 18, "male")tea1 = OldboyTeacher("nick", 18, "male", 10)
print(stu1.__dict__){"name": "tank", "age": 18, "gender": "male"}print(tea1.__dict__){"name": "nick", "age": 18, "gender": "male", "level": 10}

2 派生方法二(super)

  • 严格以来继承属性查找关系
  • super()会得到一个特殊的对象,该对象就是专门用来访问父类中的属性的(按照继承的关系)
  • super().__init__(不用为self传值)
  • super的完整用法是super(自己的类名,self),在python2中需要写完整,而python3中可以简写为super()
class OldboyPeople:    school = "oldboy"    def __init__(self, name, age, sex):        self.name = name        self.age = age        self.sex = sex#学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441class OldboyStudent(OldboyPeople):    def __init__(self, name, age, sex, stu_id):        # OldboyPeople.__init__(self,name,age,sex)        # super(OldboyStudent, self).__init__(name, age, sex)        super().__init__(name, age, sex)        self.stu_id = stu_id    def choose_course(self):        print("%s is choosing course" % self.name)stu1 = OldboyStudent("tank", 19, "male", 1)
print(stu1.__dict__){"name": "tank", "age": 19, "sex": "male", "stu_id": 1}

关键词: 学习交流 遇到问题 指名道姓