python中使用下划线的N种场景

本来是打算慢慢出一期python的基础入门的,但是吧昨天阿平哥给我推了个b站的资源学习,这个资源就是讲了关于python下划线的多种使用场景,我觉得这个知识点是很值得学习一下的,所以就记录下来分享一下,那我们下面就开始下划线的神奇用法!

第一种:使用python控制台的最后一个结果

首先,我们可以打开一个python的解释器(打开windows的终端,然后输入python)来进行模拟演示

image-20230517062728025

我们可以输入如下的计算,来验证下划线的用法:

image-20230517062833803

我们可以看到,我们写的下划线代表的就是上面的计算中,最后一次的结果值,这就是下划线的第一种用法。但是我们要记住,这种用法仅限于在python解释器种的使用~c

第二种:作为千分号使用

这个用法比较简单,我们就直接上图哈

1
2
number: int = 10_000_000
print(number)
1
2
# 输出结果
10000000

第三种:用来代表一个不重要的值

虽然说我们下划线可以用来作为变量名,但实际上我们在编程过程中,会将下划线定义的变量表示一个不重要的值,比如:

1
2
3
4
_=10

for _ in range(3):
print(_)

第四种:开箱元组

在元组的解包中,我们可以通过下划线来获取局部的元组元素,达到我们想要的效果

1
2
3
4
5
6
7
sample_tuple = (1, 2, 3, 4)
# 我们只获取1和3
a, _, b, _ = sample_tuple
print(a,b)
# 除去头尾 我们只获取中间的值
a, *_, b = sample_tuple
print(_)

第五种:在变量或者函数前加上下划线

1.只加一个下划线

比如我们在某个类的变量或者函数前加上一个下划线的话,那么就表示我们这个变量或者函数是受保护的,那么我们的多数编辑器就不会智能提示我们可以使用该方法(正常而言,受保护的变量和函数我们习惯上只在当前类去使用,但是如果外部来获取的话,我们也不会阻止)

1
2
3
4
5
6
7
8
9
10
11
12
13
from uuid import uuid4


class User:
def __init__(self):
self._id = uuid4()

def _get_id(self):
return self._id


user = User()
print(user._get_id())

2.加两个下划线

当前,我们也可以在前面加上两个下划线,这样的话就表示这个变量或者函数是私有属性,外部是访问不了的,我们可以就上面的函数改一下,然后看看运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
from uuid import uuid4


class User:
def __init__(self):
self.__id = uuid4()

def __get_id(self):
return self.__id


user = User()
print(user.__get_id())
1
2
# 运行结果
AttributeError: 'User' object has no attribute '__get_id'

第六种:让关键字可以作为变量名

这个就是比较简单理解了,如果我们的变量名是想用关键字,那么我们就可以在关键字后面加上一个下划线来表示

1
2
if_= 10
class_ = 'class'

第七种:重写双下函数

我们知道我们的类里面有很多的内置函数(也就是双下函数),比如__init____int____str__等等,我们下面举个例子来说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from uuid import uuid4


class Animals:
def __init__(self):
self._id = uuid4()

def __str__(self):
return f'Animals:{self._id}'

def __int__(self):
return 100


animals = Animals()
print(animals)

print(99 + int(animals))
1
2
3
# 输出结果
Animals:f4e896d1-235a-4d46-8fb4-b60d72c03a3b
199

综上,就是七种关于下划线在python中的使用场景了,很多技术都是日积月累的,而不是一蹴而就,坚持学习才能收获良多!


python中使用下划线的N种场景
https://gcoder5.com/2023/05/17/python中使用下划线的N种场景/
作者
Gcoder
发布于
2023年5月17日
许可协议