Python中私有属性下划线和双下划线的区别是什么

免费教程   2024年05月09日 19:24  

今天小编给大家分享一下Python中私有属性下划线和双下划线的区别是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

在Python中,使用一个下划线(_)和两个下划线(__)来表示私有属性。

1、一个下划线

一个下划线的属性名(例如 _x)表示这个属性是受保护的,应该被视为私有属性,尽管它仍然可以被类的实例直接访问。受保护的属性被视为仅供内部使用,并且应该被子类和外部代码视为不可访问的。但是,它们可以被子类和外部代码直接访问。

2、两个下划线

两个下划线的属性名(例如 __x)表示这个属性是真正的私有属性。这意味着在类的外部无法直接访问该属性,甚至子类也不能访问它。Python会自动将这个属性名重命名为 _classname__x 的形式,以避免命名冲突。

3、代码示例classMyClass:def__init__(self):self.public_attribute="Iamapublicattribute"self._protected_attribute="Iamaprotectedattribute"self.__private_attribute="Iamaprivateattribute"defprint_attributes(self):print(self.public_attribute)print(self._protected_attribute)print(self.__private_attribute)obj=MyClass()#Accessingpublicattributeprint(obj.public_attribute)#Accessingprotectedattributeprint(obj._protected_attribute)#Accessingprivateattributeusingitsmanglednameprint(obj._MyClass__private_attribute)#Printingallattributesusingmethodobj.print_attributes()#Accessingprivateattribute#ThiswillraiseanAttributeErrorprint(obj.__private_attribute)

输出结果

I am a public attributeI am a protected attributeI am a private attributeI am a public attributeI am a protected attributeI am a private attributeAttributeError: 'MyClass' object has no attribute '__private_attribute'

可以看到,Python中使用下划线和双下划线来表示不同级别的属性访问限制。在使用时,应该遵循一定的规范和约定,以便代码能够更加清晰和易于维护。

以上就是“Python中私有属性下划线和双下划线的区别是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部