python中的访问说明符是啥? [复制]

Posted

技术标签:

【中文标题】python中的访问说明符是啥? [复制]【英文标题】:What are the access specifiers in python? [duplicate]python中的访问说明符是什么? [复制] 【发布时间】:2013-08-11 03:04:20 【问题描述】:

我来自 c++ 和 java 背景,所以我很想知道 python 是否提供 c++/java 提供的访问说明符。我看过一些代码,这就是我的想法, __variable ---> 私有的。 _variable ----> 受保护。 如果我错了,请纠正我。

【问题讨论】:

【参考方案1】:

Python 有推荐的做法,而不是规定的做法 - 所以任何以 _ 开头的东西应该由其他人单独处理,但 strong> 锁定以防止它。但是,名称修改功能可以让一开始就带有__ 的成员的生活更有趣 - 请参阅PEP8。

当然,如果其他人依赖于您的私有数据/方法而不是公共 API,那么当您更改某些内容并且他们的代码停止工作时,他们只能责备自己。

【讨论】:

【参考方案2】:

Python 中没有这样的概念。使用了一些约定——比如史蒂夫提到的那些,还有其他的,比如调用实例方法的第一个变量self

此外,对于模块级导入 - 有一种方法可以防止从模块导入所有名称的默认行为。这是通过使用默认情况下应导入(公开)的名称列表填充 __all__ 来完成的。

但是,与__var_var 一样,这只是一种约定(尽管由Python 强制执行)。但它不会限制您 - 您可以显式导入任何名称。

【讨论】:

以上是关于python中的访问说明符是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

c# 中的类和构造函数在不同程序集中的 c# 中的默认访问说明符是啥 [重复]

python中的'%%'是啥意思? [复制]

结果(Python)中的“u”是啥? [复制]

Python中的点是啥? [复制]

Python 中的 %% 是啥? [复制]

Python 中的 @ 和 lambda 是啥意思? [复制]