为什么有人会写
super(); //(parameterless)
在子类构造函数中,因为如果不存在,那么无论如何都会调用默认的无参数超类构造函数?
答案 0 :(得分:2)
我通常使用IDE(即Eclipse)生成构造函数,它实际上放置了该调用,因此可能是其中一种情况
答案 1 :(得分:2)
无参数的super()构造函数只是超级构造函数列表的一部分,可以调用各种参数
from django.shortcuts import render
from django.http import HttpResponse
from books.models import Books
# Create your views here.
def index(request):
list = Books.Objects.all()
return HttpResponse(list)
尽管由于样式原因,某些团队可能会要求调用,但是no-args super()的调用并没有实现任何功能,因此代码膨胀很简单。 (有些人喜欢这样。)
答案 2 :(得分:0)
明确(否则是隐含的)控制流程。
这样的代码用作提醒,超类默认构造函数实际上将在派生类的开头调用'构造函数。读取代码的人将有一个可视标记,提醒他们在想要知道构造实例时会发生什么时也检查超类构造函数。