Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • Python

    • 语法基础

    • 数据结构 函数 和文件

    • 进阶

      • 类和对象
      • 面向对象进阶
      • 下划线的几种含义
      • python中的模块库包的区别
    • NumPy

  • MLTutorials

  • 卷积神经网络

  • 循环神经网络

  • Transformer

  • VisionTransformer

  • 扩散模型

  • 计算机视觉

  • PTM

  • MoE

  • LoRAMoE

  • LongTailed

  • 多模态

  • 知识蒸馏

  • PEFT

  • 对比学习

  • 小样本学习

  • 迁移学习

  • 零样本学习

  • 集成学习

  • Mamba

  • PyTorch

  • CL

  • CIL

  • 小样本类增量学习FSCIL

  • UCIL

  • 多模态增量学习MMCL

  • LTCIL

  • DIL

  • 论文阅读与写作

  • 分布外检测

  • GPU

  • 深度学习调参指南

  • AINotes
  • Python
  • 进阶
Geeks_Z
2024-06-15

下划线的几种含义

在 Python 中,下划线(_)有多种用途和约定,它们通常与变量命名、模块导入、特殊方法(魔术方法)等相关。以下是一些常见的用途和含义:

  1. 单下划线前缀 (_variable):

    • 通常表示该变量是“受保护的”或“私有的”,但这只是一种约定,实际上 Python 没有真正的私有属性或方法。使用下划线前缀是为了告诉其他开发者:“这个变量或方法可能在类内部使用,并且不应该在外部直接访问。”
    • 如果在类外部访问这样的变量或方法,它仍然是可能的,但可能会引发警告或混淆。

    单个下划线是一个 Python 命名约定,表示这个名称是供内部使用的。 它通常不由 Python 解释器强制执行,仅仅作为一种对程序员的提示。

  2. 双下划线前缀 (__variable 或 __method__):

    • 这是 Python 的“名称修饰”或“名称重整”的一个特性。当一个类属性或方法以双下划线开头但没有双下划线结尾时,Python 会在属性名前加上_ClassName前缀(其中ClassName是类名),并将其转化为一个“私有”属性。
    • 例如,如果你在一个名为MyClass的类中定义了一个属性__private_var,Python 会将其转化为_MyClass__private_var。
    • 双下划线开头和结尾的方法(如__init__,__str__等)是 Python 的特殊方法或魔术方法,它们在 Python 对象模型中具有特定的含义和用途。
  3. 单下划线后缀 (variable_):

    • 这通常只是一个命名约定,用于区分变量是“数据”还是“临时”的。但这并不是 Python 的强制规则,只是一种风格上的建议。
  4. 单下划线 (_) 作为变量名:

    • 在某些上下文中,如循环或函数参数中,单个下划线用作一个“丢弃”或“不重要”的变量名。这通常意味着该变量在代码中的当前位置被使用,但其值并不重要或不需要被引用。
    • 在交互式 Python shell(如 IDLE 或 IPython)中,单个下划线用于存储上一个操作的结果。
  5. 在模块导入时:

    • 当你使用from module import *语句时,Python 默认不会导入以下划线(_)开头的名称。这允许模块开发者定义一些内部使用的函数、类或变量,而不用担心它们会污染使用import *的用户的命名空间。
  6. 在字符串和变量名之间:

    • 在某些情况下,下划线用作字符串和变量名之间的分隔符,以提高代码的可读性。例如,my_variable_name比myvariablename更容易阅读和理解。

请注意,虽然上述是一些常见的约定和用法,但 Python 并没有强制要求遵循这些规则。开发者可以自由地选择他们的命名约定和风格,只要他们保持一致性和可读性即可。

上次更新: 2025/06/25, 11:25:50
面向对象进阶
python中的模块库包的区别

← 面向对象进阶 python中的模块库包的区别→

最近更新
01
帮助信息查看
06-08
02
常用命令
06-08
03
学习资源
06-07
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式