我明白爲什麼Python在引用實例屬性時需要明確的self
限定符。忘記自我限定詞:如何捕捉這個錯誤?
但我經常忘記它,因爲我不需要它在C++中。
我這樣引入的bug有時候很難理解;例如,假設我寫的
if x is not None:
f()
代替
if self.x is not None:
f()
假設屬性x
通常爲None
,所以f()
很少叫。並且假設f()
只會產生微妙的副作用(例如,更改數值或清除緩存等)。除非我有瘋狂的單元測試數量,否則這個錯誤很可能在很長一段時間內不被注意。
我想知道是否有人知道編碼技術或IDE功能,可以幫助我趕上或避免這種類型的錯誤。
不要將變量命名爲'x'等。 – 2010-08-07 04:00:44
@Hamish,讓他休息一下,它只是示例代碼。 – 2010-08-07 11:06:07