簡體   English   中英

超級構造函數中的打印語句不打印

[英]print statements in super constructor don't print

class A():
    def __init__(self):
        print("A")

class B():
    def __init__(self):
        super()
        print("B")

B()

此代碼顯示"B" 我的期望是它將打印

A
B

或至少

B
A

為什么只打印B?

  1. B類不繼承A類
  2. 這不是一個好的語法,super不會調用構造函數,它返回對父類的引用(並且必須傳遞當前類的類型和對其的引用(自身))

更正:

class A(object):
  def __init__(self):
    print "A"

class B(A): # Inherit A class
  def __init__(self):
    super(B, self).__init__()  # Call A constructor
    print "B"

super本身僅返回對父類的引用。 您實際上需要調用相關方法:

 super().__init__()

暫無
暫無

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

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