当前位置: 首页 > news >正文

【python】Python 中,单下划线(_)和双下划线(__)开头以及结尾的命名方式具有特殊的含义和用途

Python 中,单下划线(_)和双下划线(__)开头以及结尾的命名方式具有特殊的含义和用途

 【单下划线开头(如_name)】:

表示该变量、函数或类是内部使用的,即它是一个“受保护的”成员(protected member),可直接访问_name,不建议在类或模块外部直接访问。
【双下划线开头(如__name)】:

表示该变量、函数或类是私有的(private member),只能在类的内部访问。不可直接访问__name,因为Python 会进行名称修饰(name mangling),即把 __name 转换为 _classname__name,以避免子类或外部代码意外地访问到这些私有成员。
【双下划线开头和结尾(__name__)】:

表示这是一个特殊方法(magic method 或 dunder method),由 Python 内部定义和使用。这些方法通常用于实现特定的功能,如构造函数(__init__)、字符串表示(__str__)、加法运算符(__add__)等。开发者可以重写这些方法来自定义类的行为。

【单下划线结尾(name_)】:

为了避免与 Python 的关键字或内置名称冲突,可以在名称后面添加一个下划线。作用:这是一种约定,用于解决命名冲突问题。
【 双下划线结尾(name__)】:

这种情况较少见,通常用于避免与父类中的名称冲突,尤其是在多重继承的情况下。作用:通过双下划线结尾,可以减少名称冲突的可能性。

相关文章:

  • 安恒web安全春招实战
  • 如何使用 Apache 配置用户主页 ?
  • 【前端】【面试】在前端开发中,如何优化 CSS 以提升页面渲染性能?
  • 轻松完成视频创作,在线视频编辑器,无需下载软件,功能多样实用!
  • 游戏引擎学习第243天:异步纹理下载
  • C++区别于C语言的提升用法(万字总结)
  • 推荐几个可以免费下载视频的软件(Neat Download Manager、蜗牛下载助手、bilidown)
  • 【安全扫描器原理】网络扫描算法
  • 【题解-Acwing】851. spfa求最短路
  • 动态自适应分区算法(DAPS)设计流程详解
  • 【Qt6 QML Book 基础】07:布局项 —— 锚定布局与动态交互(附完整可运行代码)
  • MySQL 报错解析:SQLSyntaxErrorException caused by extra comma before FROM
  • 网络原理 - 7(TCP - 4)
  • 技术视界 | 数据的金字塔:从仿真到现实,机器人学习的破局之道
  • EFISH-SBC-RK3588无人机地面基准站项目
  • 【Hive入门】Hive查询语言(DQL)完全指南:从基础查询到高级分析
  • 基于 EFISH-SBC-RK3588 的无人机通信云端数据处理模块方案‌
  • Redis-缓存应用 本地缓存与分布式缓存的深度解析
  • 解决 Dart Sass 的旧 JS API 弃用警告 的详细步骤和解决方案
  • 【激光雷达3D(6)】​3D点云目标检测方法;CenterPoint、PV-RCNN和M3DETR的骨干网络选择存在差异
  • 瑞士外长答澎湃:瑞中都愿升级自贸协定,关税战没有任何好处
  • 11-13世纪的地中海贸易
  • 上海银行一季度净赚逾62亿增2.3%,不良贷款率与上年末持平
  • “茉上茶田”傍大牌诱导加盟续:违规从事特许经营被罚没670余万元
  • 西安市优化营商环境投诉举报监督平台上线,鼓励实名检举控告
  • 国家发改委:将开展市场准入壁垒清理整治行动