背景:我有一个类用寄存器建模一个芯片,芯片有一堆寄存器,其中一个是内置温度传感器的高温限制。
我有以下内容:
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: Attribute defined outside init几乎无处不在。我只是想知道这种编码风格是否不受欢迎,如果是,那么“Pythonic 方式”是什么。
谢谢