2016-11-26 67 views

回答

6

你可以找到自己的文檔中對:

類變量構成了全球運行狀態的一部分,因此很容易讓系統的一個組成部分意外或無意地依賴於另一部分的系統。所以這個系統變得更容易出現問題,在這裏改變某些東西會在那裏破壞某些東西。特別是,類變量可能會使設置測試變得困難(因爲測試的上下文包含所有全局狀態)。

從本質上講,它是全球性的狀態,這幾乎普遍認爲evil的一種表現,因爲它使測試更加困難,以更加脆弱類/程序結構的結果。

This Stack Overflow question也可能是值得一讀,其中顯示了與類變量的主要問題:如果任何類從類繼承和修改類變量,的變量每變化例如,即使從父!這可以理解地給你一種輕鬆拍攝自己的方式,所以最好避免使用它,除非你非常小心。

將類變量與類實例變量進行比較也是值得的。 This question有幾個很好的例子來說明使用差異,但實質上類變量是共享,而類實例變量是不共享。因此,爲了避免不必要的副作用,類實例變量幾乎總是您想要的。

相關問題