嗨,我試圖從一個類繼承一些代碼:
class MathParent:
def multiply(self, number1, number2):
self.answer = number1 * number2
return self.answer
def happy(self):
return "Nice Mark!"
class MathChild(MathParent):
def plus_x(self, x) :
return self.answer x
p_out = MathParent()
print(p_out.multiply(5, 2))
print(p_out.happy())
c_out = MathChild()
print(c_out.happy())
print(c_out.plus_x(5))
快樂的方法已經成功繼承,但是當我訪問 self.answer 屬性時,它會引發錯誤。我用另一種方式:
return MathParent.self.answer x
這仍然不起作用。任何見解都會非常有幫助:)
uj5u.com熱心網友回復:
self.answer僅在multiply被呼叫時才宣告。您可以將建構式添加為 hardraj22 狀態,但在現有代碼中,您需要multiply在呼叫plus_x.
這:
c_out = MathChild()
print(c_out.happy())
c_out.multiply(1, 1)
print(c_out.plus_x(5))
運行沒有錯誤。
uj5u.com熱心網友回復:
self.answer變數僅在multiply函式運行時創建。解決此問題的一種方法是,您可以使用以下內容確保在__init__呼叫后創建變數:
class MathParent:
def __init__(self) -> None:
self.answer = 0
def multiply(self, number1, number2):
self.answer = number1 * number2
return self.answer
def happy(self):
return "Nice Mark!"
class MathChild(MathParent):
def plus_x(self, x) :
return self.answer x
p_out = MathParent()
print(p_out.multiply(5, 2))
print(p_out.happy())
c_out = MathChild()
print(c_out.happy())
print(c_out.plus_x(5))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/402217.html
上一篇:如何使用回圈在串列中創建多個物件
