使用getter方法的python私有字段

2024-06-02 08:52:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在看下面的代码,想知道是否有人能澄清程序员为什么用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 

Tags: 方法代码selffalseindexreturndefcolumn
1条回答
网友
1楼 · 发布于 2024-06-02 08:52:19

“私有”成员首先的原因总是(几乎)encapsulation。在这种情况下,只有Cell类可以更新其__wasActive字段,因此作者可以睡得很好,而不必担心其他人会“搞乱”他的类的状态。可能该字段的值会在其他内容发生更改时更新。但是,如果不查看您似乎没有提供的相关代码片段,我们就无法了解这一点。但是,getter可以让“其他人”随时免费读取该值。在

相关问题 更多 >