[英]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.