初学者看到 Python 中的下划线 _ 时可能会有些懵圈,不知道这个到底是干什么用的,今天就来盘点一下 Python 中的下划线有哪些用处。以后看到下划线时就可以对号入座了。

1、用在 Python 解释器,表示上一次的执行结果

即使不把 Python 用于编程,也可以把它用作智能计算器,下划线保存上次的计算结果,在计算时相当方便:

>>> 4 + 3
7
>>> _
7
>>> _ + 2
9
>>> a = 10
>>> _
9

2、代码中一个独立的下划线,表示这个变量不重要

一个独立的下划线,它也是一个变量名,只不过它比较特殊,当你使用下划线作为变量名时,就代表你告诉大家,这个变量不重要,仅仅占个位置,可以忽略,后面不会再使用它。

当然了,这只是一种约定俗成,你要是不遵守也是可以的,毕竟在后面你还可以通过下划线来获取这个变量的值。

for i, _ in [(1, 2), (3, 4)]:print(i)

上面的代码表示我们只需要列表内部元组的第一个,第二个其实赋值给了下划线,虽然后面你可以通过下滑线来取到值,但是强烈建议你不要这么做,这违反了约定。

3、类的内部,双下划线作为变量名或函数名的开头,表示私有

私有变量或函数,只能在类的内部来使用,不可在外部访问或更改,比如,在 module_b.py 中有一个类 A,类 A 有一个双下划线开头的变量名:

class A:__private_var = 1000def __init__(self) -> None:self.__private_var2 = 2000self.var3 = 3000

当我们在另一个文件中引用 A 时,就无法访问到私有变量:

import module_bif __name__ == '__main__':a = module_b.A()print(a.__private_var)

这里会报错

当然了,如果你一定要访问,也是可以的,只需在私有变量前加个_类名,比如上面的代码中改为 print(a._A__private_var) 就可以正确打印 1000。

不能直接访问 __private_var 是因为 Python 解释器对外把__private_var 变量改成了_A__private_var

print(dir(a))
#['_A__private_var', '_A__private_var2', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'var3']

有些时候,你会看到以一个下划线开头的实例变量名,比如 _name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。

Python 本身没有任何机制阻止你干坏事,一切全靠自觉

4、双下划线开头和结尾的方法,是魔术方法

比如常见的 '__init__', '__dict__', '__dir__', '__doc__', '__eq__' 等等。

具体可以阅读如何写出令人惊叹的Python类

5、作为变量名中间的一部分

相比驼峰命名,这叫做蛇形命名,比如 user_name。

6、作为数字中间的一部分,更易读

>>> 10_000_000
10000000
>>> 1_280_500_000 == 1280500000
True

最后的话

本文梳理了下划线在 Python 中的 6 类用法,如果有收获还请点赞,在看,关注,感谢支持。

Python 中下划线的 6 个作用相关推荐

  1. python中的符号下划线_详解Python中下划线的使用方法

    编程派微信号:codingpy 这篇文章讨论Python中下划线_的使用.跟Python中很多用法类似,下划线 _ 的不同用法绝大部分(不全是)都是一种惯例约定. 单个下划线(_) 主要有三种情况: ...

  2. Python中下划线 _ 的最全用法详解

    Python中下划线 _ 的最全用法详解 '_'是什么? _在python中可以作为一个标识符,用于定义变量和方法唯一名称.同时它也是Python中的一个软关键字,指在某些特定上下文中保留的关键字.截 ...

  3. Python中下划线的使用方法

    http://www.jb51.net/article/62981.htm 本文将讨论Python中下划线(_)字符的使用方法.我们将会看到,正如Python中的很多事情,下划线的不同用法大多数(并非 ...

  4. Python中下划线在变量名中的用法

    参考链接: Python中下划线的5种含义 - 知乎 (zhihu.com) PEP 8 -- Style Guide for Python Code | Python.org 单前导下划线:_var ...

  5. Python 中下划线的 5 种含义

    单前导下划线:_var 单末尾下划线:var_ 双前导下划线:__var 双前导和末尾下划线:__var__ 单下划线:_ 在文章结尾处,你可以找到一个简短的"速查表",总结了五种 ...

  6. python中下划线的作用

    1.在python中,对一些变量或方法有时会见到一些以单下划线或双下划线开头的名称,对于它们的作用下面进行个大略的描述. 2.对于变量: 单下划线,表示该变量是私有的,不能采用from A impor ...

  7. python变量下划线开头_一日一技:python中下划线在不同位置的作用

    在Python的变量名和方法名中,单下划线和双下划线都有各自的含义,有的仅仅是作为约定,用于提示开发人员,而有的则对Python解释器有特殊含义. 你可能有些疑惑,在Python中变量名和方法名中的单 ...

  8. 编程笔记:python中下划线的意义

    转自:https://www.cnblogs.com/wangshuyi/p/6096362.html 总结: 变量: 1.  前带_的变量:  标明是一个私有变量, 只用于标明, 外部类还是可以访问 ...

  9. python中下划线的5种含义_python中的下划线含义

    单下划线和双下划线在Python变量和方法名称中都有含义.其中一些含义仅仅是按照惯例,作为给程序员的提示,而另外一些则由Python解释器执行. 在本文中,主要讨论以下五种下划线模式和命名约定,以及它 ...

最新文章

  1. 陆奇谢幕后,百度的“新”时代
  2. Windows10家庭版安装Hyper-V虚拟机
  3. DayDayUp:2019春节电影《疯狂的外星人》和《新喜剧之王》两部电影观后感
  4. (转载)cmd-命令大全及详解
  5. 特征预处理--长尾分布的处理方案
  6. 读《大道至简—是懒人造就了方法 》有感
  7. angularJs中的发送请求例子
  8. android 客户端bks,Keytools Https双向认证(Android通用)
  9. 花了 4 天,破解 UNIX 联合创始人 39 年前的密码!
  10. 海运业务常用缩略语 一
  11. php判断是字符串类型,php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创...
  12. 《推荐系统实践》算法纯享(附代码链接)(二)—— 协同过滤篇
  13. 联想7400打印机如何与手机连到一起_激光打印机与喷墨打印机,哪个使用成本更低?...
  14. 傻瓜式长文详细教程:无需u盘装系统(ubuntu、deepin双系统等)
  15. 零基础自学SQL课程 | UNION 联合查询
  16. 我的世界java总是停止工作_我的世界(Minecraft)Windows 10下停止工作、崩溃解决方案...
  17. 安装Pillow指定版本出错
  18. 量子计算机能做到0延迟吗,延迟选择量子擦除实验
  19. PDF文档太大怎么办?
  20. 全局记录RabbitMQ的消费者消息日志

热门文章

  1. [操作系统概念]Operating System Concepts 7th - Preface
  2. MySQL复习笔记(燕十八)
  3. STM32CubeMX——环境配置以及实例编译烧写
  4. C++高斯分布/正态分布源代码
  5. 中国的卫星地图也做的很好了
  6. LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol
  7. 助力优化商云通安装环境,上海电信做了这一系列动作
  8. js控制html页面缓存,js页面缓存问题
  9. python全栈开发工程师培训
  10. Web基础配置篇(十一): Zookeeper的安装配置及使用