如何在python中提供这种访问说明符保护?

时间:2013-03-31 02:16:29

标签: python oop private access-specifier

以下是我目前正在处理的情景 有一个叫做Service的类。基本上,节点只能创建一个对象。创建此对象后,它将从一个节点传递到另一个节点。

Class Service:
 int valueOfA=0;
 int valueOfB=0;
 int valueOfC=0;
 int valueOfD=0;

现在,让我们说A实例化这个类的对象obj。现在A应该只能增加

 obj.valueOfA++

类似地,B应该只能增加

 obj.valueOfB++

但是任何节点都可以读取A或B或C的值。这里每个节点都由其IP地址标识。含义节点A有一个单独的IP地址,节点B有一个单独的IP地址,依此类推。

我如何在python中实现这样的东西?

1 个答案:

答案 0 :(得分:1)

Python没有像publicprivate那样的自动访问说明符保护。但是你总是可以使用方法自己实现逻辑。做类似的事情:

def incrementA(self, node):
  if node.name == "Node A": self.valueOfA += 1
  else: raise ValueError("node is not authorized to increment A")

此外,Python没有++运算符。您需要使用+=来增加。