谈谈Python中的__super__
时间: 2023-07-03 16:17:47 浏览: 57
在 Python 中,`super()` 函数是用来调用父类方法的一种方法。`super()` 实际上返回了一个代理对象,可以让你在调用父类方法时更加灵活。`super()` 函数可以用来解决多重继承的问题,因为子类可以同时继承多个父类,而 `super()` 函数可以在这些父类中选择一个来调用其方法。
`super()` 函数可以在两种情况下使用:
- 在子类中调用父类的方法时,可以使用 `super()` 函数来实现。这样做的好处是,当你修改父类的方法时,子类的方法也会随之改变,而不需要手动修改子类的方法。
- 在多重继承的情况下,可以使用 `super()` 函数来避免钻石继承问题(即继承树中存在公共父类的情况),从而避免重复调用父类的方法。
在使用 `super()` 函数时,需要注意以下几点:
- `super()` 函数需要传入两个参数,第一个参数是当前子类的类名,第二个参数是当前对象。
- `super()` 函数返回的是一个代理对象,而不是真正的父类对象,因此需要通过该代理对象调用父类的方法。
- 如果在多重继承的情况下,需要在所有的父类中使用 `super()` 函数,否则可能会出现调用错误的情况。
相关推荐
![lib](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)