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

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.
主站蜘蛛池模板: 常州市| 新乡市| 达孜县| 社会| 宁安市| 庐江县| 松江区| 尚义县| 昭苏县| 唐海县| 府谷县| 通渭县| 寿光市| 密云县| 红原县| 西乌珠穆沁旗| 棋牌| 崇礼县| 元阳县| 调兵山市| 龙口市| 朝阳区| 临沧市| 偏关县| 大新县| 通化市| 綦江县| 佳木斯市| 信阳市| 上思县| 米泉市| 茶陵县| 通道| 阿城市| 韶山市| 镇雄县| 双柏县| 定西市| 永平县| 天峻县| 定西市|