【问题标题】:private public protected access specifiers in pythonpython中的私有公共保护访问说明符
【发布时间】:2013-06-19 06:30:30
【问题描述】:

我们可以在 python 中模拟私有和受保护的访问说明符吗?

名称修改

例如:

__var=10

可以模拟私有,但可以通过对象轻松访问外部。

object._className__var

那么有没有办法我们可以模拟或直接用python解决我不知道的解决方案?

【问题讨论】:

    标签: python private public access-specifier name-mangling


    【解决方案1】:

    Python 不像您可能习惯的其他一些语言那样具有强制访问控制。该语言的哲学是“我们都是自愿的成年人”。

    按照惯例,私有属性的前缀是下划线,这是对人们不应该直接使用的暗示。但仅此而已,约定。如果您想对 Python 进行沙箱处理,则需要在单独的进程中进行。

    双下划线修饰的目的是防止意外的名称冲突,而不是强制访问控制。

    【讨论】:

    • 谢谢@Antimony。我知道名称修改用于强制访问控制。顺便说一句,我的问题是我们如何模拟访问限制,这就是帖子的原因:p
    • 答案是你不知道。您可以使用反射技巧来模拟它,但您可以使用反射来轻松绕过此类技巧。真正的问题是你想要达到什么目标?
    猜你喜欢
    • 2011-07-23
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 2021-11-10
    • 2011-03-30
    相关资源
    最近更新 更多