官术网_书友最值得收藏!

Access modifiers in Python

In Python, we don't have access modifiers in the same way as we do in Java and C++. There is a partial workaround however, which  can be used to indicate which variables are public, protected, and private. The word indicate is important here; Python doesn't prevent the usage of protected or private members, it just indicates which members are which. Let's take a look at an example. Create  a class called AccessSpecifiers.py:

The preceding example shows us how access specifiers can be used in Python. Any variable that would be simply declared within a class is public by default, as we declared self.public. Protected variables in Python are declared by prefixing them with an underscore (_)  as seen in line 5, self._protected. But it must be noted that this does not prevent anyone from using them, as can be seen at line 23, in which we are using a protected member outside of the class. Private members in Python are declared by prefixing them with double underscore (__), as can be seen at line 6, self.__private. Again, however, there is nothing to prevent this member from being used outside the class. The way to access them is a little different, however; for private members, a specific convention is followed if they are to be accessed outside the class: instance._<className><memberName>. This is called name mangling.

What we have learnt here about access modifiers in Python is that Python does have notations to denote public, private, and protected members of a class, but it doesn't have any way for the members to be used outside their scope, so it's merely for identification purposes.
主站蜘蛛池模板: 南澳县| 板桥市| 兴隆县| 罗平县| 绩溪县| 贡觉县| 墨竹工卡县| 林口县| 绍兴县| 芷江| 宜春市| 清新县| 若羌县| 琼海市| 泰安市| 怀宁县| 濮阳市| 阳江市| 绍兴县| 白沙| 青冈县| 会东县| 翁源县| 神木县| 江山市| 肥东县| 武安市| 青州市| 南城县| 沂南县| 上思县| 天津市| 洛隆县| 增城市| 徐州市| 上饶市| 股票| 马公市| 奎屯市| 金溪县| 永寿县|