千家信息网

python变量中单下划线和双下划线的区别是什么

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,python变量中单下划线和双下划线的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、变量的定义在Python中,有以下几种
千家信息网最后更新 2026年10月31日python变量中单下划线和双下划线的区别是什么

python变量中单下划线和双下划线的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

一、变量的定义

在Python中,有以下几种方式来定义变量:

xx:公有变量

_xx:前置单下划线,私有化属性或方法,一般来讲,变量名_xx被看作是"私有 的",在模块或类外不可以使用。当变量是私有的时候,用_xx 来表示变量是很好的习惯。类对象和子类可以访问,这并不能完全做到真正的私有,只是约定俗成的而已,这样写表示不希望这个变量在外部被直接调用

__xx:前置双下划线,私有化属性或方法,无法在外部直接访问(名字重整所以访问不到,只能是允许这个类本身进行访问了。连子类也不可以)

__xx__:前后双下划线,系统定义名字(这就是在python中强大的魔法方法),因为变量名__xxx__对Python 来说有特殊含义,对于普通的变量应当避免这种命名风格。

xx_:后置单下划线,用于避免与Python关键词的冲突

如以下例子所示,我在test类中定义了x,_x和 __x三个属性,并创建了test的类对象t,对这三个属性进行访问,__x不能被访问到

学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习python或者有兴趣学习python的伙伴可以私信回复小编"学习" 获取资料,一起学习

可以使用命令dir查看t中的属性和方法,__x的名字已经被重整为"_test__x"了,如果你非要通过外部访问,也是可以的,可以使用t._test__x对__x进行访问。

python中没有真正的公有和私有变量,python只是对变量名称做了一个变化,还是可以在外部访问到的,是伪私有。

注:虽然私有变量可以通过_类名__变量名来访问,但强烈建议不要这样做!

二、使用不同方法导入模块,模块中私有变量的使用区别

在使用不同方法导入模块后,是否能使用模块中的私有属性和方法,有以下两种情况

使用 from somemodule import * 进行导入,不能导入私有变量,结果如下:

在使用 import somemodule 导入模块的情况下,能导入并使用私有属性和方法

三、对类中的私有属性进行操作的方法

如果你想对类中的私有属性进行操作时,有以下两种方法种方法:

注:

1,在构造函数__init__中是_x,不是x,你直接x是访问不到的;

2,为什么是_x 而不是x,这是python中的私有变量(虽然python中没有公有变量和私有变量,也就是说这是伪私有),在python中,如果一个变量不想被外部直接访问,一般是在变量前加一个下划线,提醒不要直接访问(其实是可以通过self._x访问到的,如果不想被访问还可以使用双下划线__x,也是不能直接访问)所以提供get_x这样的函数供使用者访问;

3,为什么要使用_x这样的伪私有变量,因为我们使用property时,让方法变成属性的方式来调用,一般是这样写x=property(...),这样调用更加清晰明了;但是如果构造函数中的变量也用x,就会和property中的变量有冲突,所有一般我们写_x

看完上述内容,你们掌握python变量中单下划线和双下划线的区别是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

变量 私有 方法 下划线 属性 模块 学习 函数 名字 不同 三个 伙伴 内容 只是 可以通过 子类 对象 情况 方式 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 互联网科技财经 工业互联网科技新基建 互联网科技卖菜 广州宏创互联网科技 互联网科技logo设计 融贸通互联网科技 广州善班互联网科技 丰台科技园 互联网公司 富国互联网科技创新基金 科技赋能视角下互联网保险发展 为客找房互联网科技公司怎么样 智帮互联网科技公司最近动向 梅州GM互联网络科技有限公司 云南省自由互联网科技有限公司 互联网科技快讯热点 南京一网一红互联网科技有限公司 易企秀互联网科技是做什么的 上海乐五互联网科技有限公司 高科技和互联网的现代国家 互联网科技股 科技金融是不是互联网金融 科技制造互联网公司 高科技与互联网 苏州大垚互联网科技 怎样加入科技互联网 上海同邻互联网科技有限公司规模 科技互联网公司两年变化 科技互联网专业务虚会材料 武汉亿视互联网科技有限公司
0