我正在嘗試整理如何組織大量迭代存儲在 python 類實例中的數據的代碼。在大多數情況下,代碼讀取實例數據并產生一些結果(數字、列表等)。本質上,我只是試圖通過創建頂級實例方法來保持所有內容的可維護性和更易于閱讀,這些方法將繁重的工作委托給需要實例數據但不需要修改實例本身的“愚蠢”方法。鑒于這些其他方法的只讀性質,我最好將它們聲明為靜態方法并將所需數據作為單獨的參數傳遞,還是將它們全部保留為實例方法?我更喜歡靜態方法方法作為“自我”參數表示該方法修改實例數據,但我不知道我是否過度使用靜態方法來采用這種方法......我意識到這是一個廣泛的問題,邀請基于意見的回應,但我找不到任何信息表明過度使用靜態方法會造成任何真正的困難/性能問題(反之亦然)。也就是說,我看到應該謹慎使用靜態方法的建議,但我沒有看到任何理由。例如,在下面的代碼片段中,假設靜態方法表示對實例數據的重要但獨立的操作,最好將它們標記為靜態方法(這立即告訴我它們只返回結果,而不是修改實例或類),或者讓它們都是實例級方法并直接訪問數據?這種方法是否存在任何實際問題?class Test(object): def __init__(self): self.var1 = 10 self.var2 = ["my", "list", "of", "strings"] self.var3 = [1,2,3,4,5] @staticmethod def processFloat(inst_float): pass @staticmethod def processList(inst_list): pass @staticmethod def processArray(inst_array): pass def doStuff(self): processFloat(self.var1) processList(self.var2) processArray(self.var3)
添加回答
舉報
0/150
提交
取消