python中的私有函数/变量实施

发布于 2021-01-29 15:00:29

我看到很多执行“松散”私有变量/功能的python代码。他们将用一个下划线(例如_foo)声明函数/变量,然后仅在类/文件中使用它。他们不使用双下划线确实让我感到烦恼,因为最终,有人会从班级外部将此人称为“私人”成员。

是否有某种方法可以在单个下划线上强制执行隐私(不更改为双下划线)?谢谢!

关注者
0
被浏览
94
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    否。这就是python的理念:不要让编译器/解析器强制执行隐私,因为 想要 访问私有成员的开发人员无论如何都可以这样做(反射等)。这个想法告诉人们,
    嘿,这不是公共API的一部分。 如果使用不当,可能会损坏东西或杀死猫。我也可能经常更改签名,因为它不是公共API的一部分,而且我不必在乎使用它的人

    而且,实际上,您可以使用来从外部访问双下划线变量(方法同样适用)obj._ClassName__variableName。除此之外,除了mixin对象外,不鼓励使用双下划线-
    您永远无法知道是否有人想对您的类进行子类化。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看