静态变量可以在python中声明为私有吗?

Jaz*_*med 7 python python-3.x

class Applicant:
    applicant_id_count=1000
    application_dict={
                        "A":0,
                        "B":0,
                        "C":0
                     }
    def __init__(self,applicant_name):
        self.__applicant_name=applicant_name
        self.__applicant_id=None
        self.__job_band=None
Run Code Online (Sandbox Code Playgroud)

我需要做的静态变量在上面的类,即application_dictapplicant_id_count私有静态变量。或者python中有没有这样的东西?

Bha*_*tla 9

Python 没有访问修饰符。如果您想从实例或类之外访问实例(或类)变量,您总是可以这样做。

也就是说,大多数开发人员遵循使用下划线(_)的约定来表示变量/方法是私有的。单个下划线是一种约定,表示它是一个私有变量,但它实际上并没有改变访问权限。例子:

class Applicant:
    _applicant_id_count = 1000

Applicant._applicant_id_count # equals to 1000
Run Code Online (Sandbox Code Playgroud)

如果出于某种原因要模拟私有变量,则始终可以使用__前缀。Python 修改了变量的名称,使它们不容易被看到。例子:

class Applicant:
    __applicant_id_count=1000
Run Code Online (Sandbox Code Playgroud)

当有人尝试直接访问它时,您将收到以下错误:

Applicant.__applicant_id_count
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: class Applicant has no attribute '__applicant_id_count'
Run Code Online (Sandbox Code Playgroud)

有人可以破解他们的方式并使用这样的变量:

Applicant._Applicant__applicant_id_count # prints out 1000
Run Code Online (Sandbox Code Playgroud)

您可以在此处阅读更多相关信息:https : //www.geeksforgeeks.org/private-variables-python/