📅  最后修改于: 2023-12-03 14:47:58.142000             🧑  作者: Mango
在 Python 中,this
和 super
都是关键字,但它们有不同的作用和用途。
this
在 Python 中也被称为 self
,它是一个代表当前对象的实例的引用。当你定义一个类,并实例化一个对象后,你可以使用 this
来引用该对象的实例变量和方法。
例如:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print("Hello, my name is", self.name, "and I am", self.age, "years old.")
person1 = Person("Alice", 25)
person1.say_hello() # Output: Hello, my name is Alice and I am 25 years old.
在上面的示例中,self
等同于 this
,它是一个代表 person1
对象实例的引用。
super
是用来调用父类的方法,其目的是继承重用父类的代码。在继承机制中,子类可以调用其父类的属性和方法。如果子类要扩展父类的方法,可以使用 super
来调用父类的方法,并在其基础上添加额外的功能。
例如:
class Shape:
def __init__(self, x, y):
self.x = x
self.y = y
class Rectangle(Shape):
def __init__(self, x, y, width, height):
super().__init__(x, y)
self.width = width
self.height = height
def area(self):
return self.width * self.height
rectangle1 = Rectangle(0, 0, 10, 20)
print(rectangle1.area()) # Output: 200
在上述示例中,Rectangle
类继承了 Shape
类。在 Rectangle
的构造函数中,使用 super
调用了 Shape
的构造函数并传递了参数 x
和 y
。从而在 Rectangle
中创建对象时,可以同时初始化 x
,y
和 width
,height
属性。
this
或 self
是代表当前对象实例的引用。super
用于调用父类的方法,并且可以对其进行扩展。this
或 self
只在类的方法中使用,而 super
可以在任何地方使用。 以上是 this
和 super
的区别和用途在 Python 中的介绍。