python中super的用法
时间: 2023-09-28 17:12:32 浏览: 99
在 Python 中,`super` 函数用于调用父类(基类)的方法。它可以帮助我们在子类中继承父类的方法,同时还可以对父类方法进行修改或扩展。
使用 `super` 的语法如下:
```
super(子类名, self).父类方法名()
```
其中,`子类名` 指的是当前类的名称,`self` 是当前对象的引用,`父类方法名` 指的是要调用的父类的方法名。
举个例子:
```
class Shape:
def __init__(self, x, y):
self.x = x
self.y = y
def area(self):
return self.x * self.y
class Square(Shape):
def __init__(self, x):
super().__init__(x, x)
def area(self):
return super().area()
```
在这个例子中,`Square` 类继承了 `Shape` 类,同时使用了 `super` 函数来调用父类的方法。
相关问题
Python中super的用法
在 Python 中,super() 是一个内置函数,它用于调用父类的方法。它可以在子类中使用,以便在不重复编写代码的情况下重用父类的方法和属性。super() 函数可以使用两个参数:第一个参数是子类,第二个参数是子类对象。如果不提供任何参数,则 super() 函数默认使用当前类和实例。下面是一些 super() 函数的用法示例:
1. 调用父类方法
class ParentClass():
def foo(self):
print("ParentClass foo")
class ChildClass(ParentClass):
def foo(self):
super().foo()
print("ChildClass foo")
c = ChildClass()
c.foo()
# 输出结果:
# ParentClass foo
# ChildClass foo
2. 调用父类的构造函数
class ParentClass():
def __init__(self, var):
self.var = var
class ChildClass(ParentClass):
def __init__(self, var1, var2):
super().__init__(var1)
self.var2 = var2
c = ChildClass("hello", "world")
print(c.var)
print(c.var2)
# 输出结果:
# hello
# world
3. 多重继承中的 super()
class ParentClass1():
def foo(self):
print("ParentClass1 foo")
class ParentClass2():
def foo(self):
print("ParentClass2 foo")
class ChildClass(ParentClass1, ParentClass2):
def foo(self):
super(ParentClass1, self).foo()
super(ParentClass2, self).foo()
print("ChildClass foo")
c = ChildClass()
c.foo()
# 输出结果:
# ParentClass1 foo
# ParentClass2 foo
# ChildClass foo
阅读全文