python中的访问说明符是什么?

时间:2013-08-09 07:54:12

标签: python python-2.7

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

2 个答案:

答案 0 :(得分:1)

Python推荐的做法而不是规定性的做法 - 所以任何开头<{>} 锁定以防止它。然而,对于_开头的成员来说,有一些名称可以让生活变得更有趣 - 请参阅PEP8

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

答案 1 :(得分:1)

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

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

然而,与__var_var一样,它只是一个约定(尽管由Python强制执行)。但它并不限制您 - 您可以明确导入任何名称。