單一實例類別的類別變數與實例變數
當建立只需要一個實例的Python 類別時,你可能會面臨這樣的困境儲存類別屬性的位置:類別變數或實例變數。這兩種選項都有其優點和缺點。
實例變數
實例變數特定於類別的每個實例。它們在__init__ 方法中定義,如提供的第二個代碼示例中所示:
class MyController(Controller): def __init__(self): self.path = "something/" self.children = [AController, BController] def action(self, request): pass
優點:
缺點:
班級另一方面,變數
類別變數在類別的所有實例之間共用。它們是在__init__ 方法之外定義的,如提供的第一個程式碼範例所示:
class MyController(Controller): path = "something/" children = [AController, BController] def action(self, request): pass
優點:
缺點:
建議
如果您確定某個類別只會有一個實例,通常建議使用實例變數。這提供了稍微更快的存取速度,並消除了重複屬性的任何潛在混亂或問題。
以上是類別變數或實例變數:哪個最適合 Python 中的單例類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!