簡體   English   中英

為什么我們不需要在 super() 中包含 self ?

[英]Why do we not need to include self in super()?

為什么在super()關鍵字中,我們可以省略self嗎? 如果我們不省略它呢?

class A:
  def __init__(self, var1, var2):
    """
    some code
    """

class B(A):
  def __init__(self, varA, varB):
    super().__init__(varA, varB)
    """
    some code
    """
class Rectangle:
    def __init__(self, length, width):
    self.length = length
    self.width = width

    def area(self):
    return self.length * self.width

    def perimeter(self):
    return 2 * self.length + 2 * self.width

class Square(Rectangle):
    def __init__(self, length):
        super(Square, self).__init__(length, length)

在 Python 3 中, super(Square, self) 調用等效於無參數 super() 調用。 第一個參數指的是子類 Square,而第二個參數指的是 Square 對象,在這種情況下,它是 self。 您也可以使用其他類調用 super() :

class Cube(Square):
def surface_area(self):
    face_area = super(Square, self).area()
    return face_area * 6

def volume(self):
    face_area = super(Square, self).area()
    return face_area * self.length

您可以在此處找到更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM