[英]Calling parent class in python
我的問題是在另一個類中調用類。 獨立地,我可以設置這兩個類的工作方式。 我就是不能讓他們一起工作。 我希望我的數據集(這是足球賽程和結果)傳遞給一個類聯賽,它包含所有聯賽信息,然后該聯賽中的每支球隊都在類 Team 中,該類是父類聯賽的子類。 示例僅顯示了如何設置的片段
在示例的底部,您將看到函數 'total_attack_strength_home(self):' 在這里,我需要訪問類 Team,但計算的最后部分引用了相應的類對象(俱樂部所在的聯賽)。 對此的任何幫助將不勝感激。 謝謝
'''
class League():
def init(self,league):
self.league = league
self.total_goals_scored = self.get_total_goals_scored()
self.home_goals_scored = self.get_home_goals_scored()
def get_total_goals_scored(self):
pass
def get_home_goals_scored(self):
pass
class Team(League):
def init(self,club):
self.club = club
self.home_wins = self.get_home_wins()
self.home_draws = self.get_home_draws()
def total_attack_strength(self):
if len(self.total_goals) == 0:
attack_strength = 0
else:
attack_strength = (sum(self.total_goals) / len(self.total_goals)) / ***(total_goals_scored/games_played)***
return attack_strength'''
有一些變量似乎沒有在任何地方定義,所以我假設這只是一個片段示例。
如前所述,當您希望父類代碼運行時,請使用super
。 所以在孩子的init
,拋出一個super().__init__()
來讓父母的init
運行。 如果您只是嘗試訪問父母屬性,請記住您繼承了這些屬性。 因此, self.foo
將自動獲得您或您父母對foo
定義,以最后發生的為准(在大多數情況下將是孩子的)。
我認為你的類 League 應該是抽象的(將實現委托給子類)。
喜歡:
import abc
class League(metaclass=abc.ABCMeta):
....
@abc.abstractmethod
def get_total_goals_scored(self):
pass
然后你需要在你的 Team 類中實現它。
除了已經評論的內容(考慮使用組合而不是繼承)並且缺少在子類上調用父構造函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.