我一直在看下面的代码,想知道是否有人能澄清程序员为什么用getter方法使uwastactive成为一个私有字段?这很简单,因为当在这个文件之外编写代码时,程序员希望私有字段只能通过wasActive()方法访问,而不是直接通过编写例如细胞。活跃? 谢谢!在
class Cell(object):
def __init__(self, column, index):
self.segments = []
self.column = column
self.index = index
self.isActive = False
self.__wasActive = False #Why private field?
self.isPredicting = False
self.__wasPredicted = False
self.isLearning = False
self.__wasLearning = False
@property
def wasActive(self):
return self.__wasActive
@property
def wasLearning(self):
return self.__wasLearning
@property
def wasPredicted(self):
return self.__wasPredicted
“私有”成员首先的原因总是(几乎)encapsulation。在这种情况下,只有
Cell
类可以更新其__wasActive
字段,因此作者可以睡得很好,而不必担心其他人会“搞乱”他的类的状态。可能该字段的值会在其他内容发生更改时更新。但是,如果不查看您似乎没有提供的相关代码片段,我们就无法了解这一点。但是,getter可以让“其他人”随时免费读取该值。在相关问题 更多 >
编程相关推荐