📜  this 和 super 的区别 - Python (1)

📅  最后修改于: 2023-12-03 14:47:58.142000             🧑  作者: Mango

This 和 Super 的区别 - Python

在 Python 中,thissuper 都是关键字,但它们有不同的作用和用途。

This

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 是用来调用父类的方法,其目的是继承重用父类的代码。在继承机制中,子类可以调用其父类的属性和方法。如果子类要扩展父类的方法,可以使用 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 的构造函数并传递了参数 xy。从而在 Rectangle 中创建对象时,可以同时初始化 xywidthheight 属性。

总结
  • thisself 是代表当前对象实例的引用。
  • super 用于调用父类的方法,并且可以对其进行扩展。
  • thisself 只在类的方法中使用,而 super 可以在任何地方使用。

以上是 thissuper 的区别和用途在 Python 中的介绍。