--super(),会得到一个特殊的对象,该对象就是专门用来 访问父类中的属性的(严格按照继承的关系) --super().__init__(),这里__init__()括号中不需要传参self, 有其他参数传其他参数即可 --在Python2中,super()的完整用法是 super(自己类名,self).__init__(),
在Python2中需要写完整,而Python3中可以简写为 super().__init__()。 --用法解析:在子类的__init__方法中使用 super().__init__() , 就相当于把父类的 __init__构造方法拿过来用, 并且可以对父类的__init__方法进行补充(比如添加成员属性/方法)也就相当于把父类的__init__方法继承过来了, 之后用子类实例化一个对象后, 这个对象可以点出父类对象的成员属性/方法, 当然也可以点出自己类的成员属性/方法 原本的话用子类实例化的对象是无法调用父类对象的成员属性/方法的, 使用上述方法后, 父类对象可以调用的东西, 子类的对象都能调用
class OldboyPeople: school=‘oldboy‘ def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex class OldboyStudent(OldboyPeople): def __init__(self,name,age,sex,stu_id): super().__init__(name,age,sex) self.stu_id=stu_id def choose_course(self): print(‘%s is choosing course‘%self.name) # return ‘true‘ # 函数自带返回值none,如果把return ‘true‘这一行注释的话, # 那么打印的print(stu1.choose_course())这个结果就会是:tank is choosing course # 并且还会打印出有None。 stu1=OldboyStudent(‘tank‘,19,‘male‘,1) print(stu1.__dict__) print(stu1.choose_course()) 上述程序输出的打印结果如下所示: {‘name‘: ‘tank‘, ‘age‘: 19, ‘sex‘: ‘male‘, ‘stu_id‘: 1} tank is choosing course None
转自: https://www.cnblogs.com/ludundun/p/11494933.html
原文地址:https://www.cnblogs.com/banbosuiyue/p/12682498.html
时间: 2024-10-13 12:23:29