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_dict与applicant_id_count私有静态变量。或者python中有没有这样的东西?
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/
| 归档时间: |
|
| 查看次数: |
3070 次 |
| 最近记录: |