在python中声明私有变量

Declaring private variable in Python

本问题已经有最佳答案,请猛点这里访问。

我正在Python中编写一个银行应用程序,并从这里读取一些银行应用程序的源代码。balance类定义如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Balance(object):
   """ the balance class includes the balance operations"""

    def __init__(self):
       """ instantiate the class"""
        self.total = 0

    def add(self, value):
       """ add value to the total
        Args:
            value (int): numeric value
       """

        value = int(value)
        self.total += value

    def subtract(self, value):
       """ subtract value from the total
        Args:
            value (int): numeric value
       """

        value = int(value)
        self.total -= value

我的问题

由于余额明细不应该在类外访问,我们应该将属性self.total定义为self.__total,因为我们应该将其设置为private而不是public变量?我的思路正确吗?


短单:没有一个真正的"私人"的Python类的成员。简单的运行在不支持的内存保护的方式,前,java做的。

mangles双下划线前缀的名称等名称的类信息,包括它的使用(例如,一个__total_Balance__total),但这是一个主要用于允许出现subclasses定义名称是相同的,但不同的参考场。

一个标准的会议在Python中是使用一个单下划线前缀_total这类的成员应处理为"私人"或"保护",然后是其他的开发者将信任和尊重的成年人,(当然,这不总是安全的假设……)

它是非常罕见的在现代的Python代码使用湖双下划线的属性。