super().__init__() 两个括号里填写什么呢?
下面代码内super().__init__()的括号内容该怎么理解 ,为什么一个()是子类+对象 另一个()是子类的变量class MyMatplotlibFigure(FigureCanvasQTAgg):
"""
创建一个画布类,并把画布放到FigureCanvasQTAgg
"""
def __init__(self, width=10, heigh=10, dpi=100):
plt.rcParams['figure.facecolor'] = 'r'# 设置窗体颜色
plt.rcParams['axes.facecolor'] = 'b'# 设置绘图区颜色
self.width = width
self.heigh = heigh
self.dpi = dpi
self.figs = Figure(figsize=(self.width, self.heigh), dpi=self.dpi)
super(MyMatplotlibFigure, self).__init__(self.figs)# 在父类种激活self.fig, 否则不能显示图像
self.axes = self.figs.add_subplot(111)
————————————————
版权声明:本文为CSDN博主「qd-hhkj」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wuwei_201/article/details/106106387
在给super()函数传递参数时,括号中填写的是当前子类的相关参数。在这种情况下,super().__init__()的第一个括号中填写的是子类本身的名称,即MyMatplotlibFigure类,第二个括号中填写的是子类对象的参数,即self.figs是通过MyMatplotlibFigure类创建的对象。
具体来说,在这段代码中,super(MyMatplotlibFigure, self).__init__(self.figs)中,第一个括号MyMatplotlibFigure表示子类本身,即MyMatplotlibFigure类;第二个括号self.figs表示子类对象的参数,即self.figs是通过MyMatplotlibFigure类创建的对象。
super().__init__()调用了父类(FigureCanvasQTAgg)的__init__()方法,并传递了相应的参数。这样做的目的是在子类的初始化过程中,先调用父类的初始化方法,以确保父类的属性和方法被正确初始化。
需要注意的是,super()是用来调用父类方法的特殊函数,它并不是父类的实例化对象。通过super().__init__()可以在子类中调用父类的初始化方法,完成父类属性的初始化工作。
希望能解答你的问题!
回复来自于CHAT-GPT。回复仅供参考,如有人工回答,最佳答案请优先选择人工 `super().__init__()`中的括号填写的是当前子类的参数。`super()`是一个特殊的函数,它用于调用父类的方法。在上述代码中,`super(MyMatplotlibFigure, self)`表示调用`MyMatplotlibFigure`的父类`FigureCanvasQTAgg`的`__init__`方法。
为什么要使用两个括号呢?第一个括号用于创建一个父类的实例对象,而第二个括号则是调用父类的`__init__`方法,并传递子类的参数。
具体地说,`super(MyMatplotlibFigure, self)`是创建了一个父类`FigureCanvasQTAgg`的对象,并将该对象赋值给`self`。然后,用这个对象调用父类的`__init__`方法,传递了子类的参数`self.figs`。
通过调用父类的`__init__`方法,可以确保在子类的初始化过程中也能执行父类的初始化操作,从而实现子类和父类的完整初始化。
完整的代码如下:
class MyMatplotlibFigure(FigureCanvasQTAgg):
"""
创建一个画布类,并把画布放到FigureCanvasQTAgg
"""
def __init__(self, width=10, heigh=10, dpi=100):
plt.rcParams = 'r'# 设置窗体颜色
plt.rcParams = 'b'# 设置绘图区颜色
self.width = width
self.heigh = heigh
self.dpi = dpi
self.figs = Figure(figsize=(self.width, self.heigh), dpi=self.dpi)
super(MyMatplotlibFigure, self).__init__(self.figs)# 在父类种激活self.fig, 否则不能显示图像
self.axes = self.figs.add_subplot(111)
希望能解答你的疑问!
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页:
[1]