我看到很多python代码"松散"私有变量/函数.它们将使用一个下划线(例如_foo)声明函数/变量,然后在类/文件中使用它.我真的很惹恼他们不使用双下划线,因为最终,有人会从课堂外称这个"私人"成员.
有没有办法在单个下划线上强制实施隐私(不改为双打)?谢谢!
不.这就是python的理念:不要让编译器/解析器强制执行隐私,因为想要访问私有成员的开发人员无论如何都有办法(反射等).这个想法告诉人们嘿,这不是公共API的一部分.如果你使用不当,它可能会破坏你的东西或杀死你的猫.我也可能经常更改签名,因为它不是公共API的一部分,我不必关心使用它的人
而且,你可以从外部使用实际访问双下划线变量(同样适用于方法)obj._ClassName__variableName.除此之外,不鼓励使用双下划线除了mixin对象 - 你永远不知道是否有人想要继承你的类.
在Python中,私有方法没有严格的概念(例如Java).即使使用双下划线仍然可以通过做_classname__method.
简而言之,不要违背细粒度,而应该遵循Python哲学,其中私有是惯例,而不是力量.
| 归档时间: |
|
| 查看次数: |
1010 次 |
| 最近记录: |