super().__init__()需要添加参数吗
时间: 2024-06-15 11:03:27 浏览: 15
在Python中,当你在子类中使用super().__init__()调用父类的构造函数时,通常不需要添加参数。这是因为super()函数会自动将当前子类的实例作为第一个参数传递给父类的构造函数。这样可以确保父类的构造函数能够正确地初始化子类的实例。
然而,如果你的子类的构造函数需要额外的参数,你可以在super().__init__()中添加这些参数。这样,super()函数会将这些参数传递给父类的构造函数,以便进行初始化。
总结起来,super().__init__()通常不需要添加参数,但如果子类的构造函数需要额外的参数,可以在super().__init__()中添加这些参数。
相关问题
super().__init__(*args, **kwargs)
引用和引用中的代码片段中的`super().__init__(*args, **kwargs)`会导致错误。这是因为`object.init()`函数不接受任何参数,而在这些代码中,`super().__init__(*args, **kwargs)`尝试将参数传递给父类的`init()`函数。如果你想在子类的`__init__`方法中传递参数给父类的`__init__`方法,你应该使用正确的语法。例如,在引用和引用中的代码中,你可以删除`super().__init__(*args, **kwargs)`并将`args`分配给`self.a`,就像这样:`self.a = args`。这样可以避免错误。
至于引用中的代码片段,它尝试在调用父类的`__init__`方法之前执行一些操作。然而,在这个示例中,我们并没有看到完整的代码,因此无法确定这段代码的目的和正确性。不过,如果你想在调用父类的`__init__`方法之前执行某些操作,你可以在调用`super().__init__(parent, *args, **kwargs)`之前添加你自己的代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [super().__init__(*args, **kwargs) TypeError: object.__init__() takes no parameters](https://blog.csdn.net/m0_37192554/article/details/104361140)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [工伤助手小程序分析及学习](https://blog.csdn.net/ldgk3ekkd/article/details/126418471)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
def __init__(self): super(self).__init__()
这段代码中的 `super(self).__init__()` 是错误的用法。在调用 `super()` 函数时,第一个参数应该是当前类的类名,而不是实例对象 `self`。
正确的用法应该是 `super(ClassName, self).__init__()`,其中 `ClassName` 是当前类的类名。例如:
```python
class Main(Parent):
def __init__(self):
super(Main, self).__init__()
```
在这个例子中,`Main` 类继承自 `Parent` 类,并在其构造函数中调用了父类的构造函数。通过调用 `super(Main, self).__init__()`,`Main` 类可以继承父类的属性和方法,并在其自己的构造函数中添加自己的属性和方法。
需要注意的是,Python 3 中的 `super()` 函数可以省略第一个参数,如果省略了第一个参数,Python 会自动根据当前类和实例对象来确定要调用的父类。例如:
```python
class Main(Parent):
def __init__(self):
super().__init__()
```
在这个例子中,我们省略了第一个参数,Python 会自动根据 `Main` 类和实例对象来确定要调用的父类。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)