网站首页 > 技术教程 正文
初学者看到 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 = 1000
def __init__(self) -> None:
self.__private_var2 = 2000
self.var3 = 3000
当我们在另一个文件中引用 A 时,就无法访问到私有变量:
import module_b
if __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__**' 等等。
5、作为变量名中间的一部分
相比驼峰命名,这叫做蛇形命名,比如 user_name。
6、作为数字中间的一部分,更易读
>>> 10_000_000
10000000
>>> 1_280_500_000 == 1280500000
True
最后的话
本文梳理了下划线在 Python 中的 6 类用法,如果有收获还请点赞、关注,感谢支持。
猜你喜欢
- 2024-10-09 老师批完试卷,为啥非要画两道横线?就连很多老师也不知道
- 2024-10-09 考试成绩的下面为什么要画两条横线?今天为你揭晓
- 2024-10-09 Word办公技巧:批量清除带下划线的文本并且下划线长度不变
- 2024-10-09 Word为内容添加着重号或下划线(word文字添加着重号)
- 2024-10-09 短横线与一字线的用法(短横线与一字线的用法一样吗)
- 2024-10-09 word下划线怎么打?学会这个技巧让你效率倍增!
- 2024-10-09 微信朋友圈的这条横线为何有长有短? 怎么判断屏蔽拉黑删除
- 2024-10-09 Excel下划线的三种绘制方式打出_____各有不同
- 2024-10-09 微信拉黑与删除到底有什么区别?我也是刚知道,以后别再乱用了
- 2024-10-09 大揭秘!地铁站内这些“横线”是啥?
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)