背景:我有一個模擬寄存器的類,該芯片有一堆寄存器,其中一個是內置溫度傳感器的高溫極限。在Python中使用單位變量
我有以下幾點:
class foo():
def __init__(self):
# does not set self._hiTemp!
...
def setHiTemp(self, t):
self._hiTemp = t
def getHiTemp(self):
return self._hiTemp
def checkHiTemp(self):
return self._temp > self._hiTemp
,我不聲明self._hiTemp
在__init__
是因爲用戶可能不關心芯片的溫度檢測功能的原因。用戶可以以不同的方式使用該芯片,並且給這個變量賦予無意義的價值沒有意義。但是,如果用戶在未首先設置的情況下嘗試使用self._hiTemp
,那麼使用未聲明的變量的錯誤比調用/回溯(比較數字和無)(或者在某些情況下甚至根本沒有錯誤)等一些模糊錯誤更容易調試/回溯。
這一切都很順利,直到我開始pylint,當然我得到W0201:屬性定義init幾乎無處不在。我只是想知道這種編碼方式是否被忽視,如果是的話,那麼「Pythonic方式」是什麼。
感謝
'self._hiTemp = None' – JBernardo
我會存儲這些特性,感覺對我來說更清潔。 – leoluk
@leoluk什麼是字典讓你在這裏?像Python這樣的動態語言的美妙之處在於,首先所有的對象都基本上都是美化詞典。另請參見'self。\ _ \ _ dict \ _ \ _' –