这里的知识虽然简单,不过还是蛮实用的,我简单做了下整理,保证不了那天会忘鸭 ~
-
封装
- 将多个值用逗号分割,再组合在一起
- 本质上,返回一个元组 (tuple),只是省略了小括号
栗子 :
a = (2,6) #简单定义个元组
b = 2,6 #把2,6封装成元组
print(type(a)) #看下a的类型
class 'tuple' #tuple类型
print(type(b))
class 'tuple' #tuple类型
-
解构
- 把线性结构的元素解开,并顺序的赋给其他变量
- 左边接纳的变量数和右边解开的元素数一致
栗子 :
lis = [7, 8, 9]
A, B, C = lis
print(A, B, C)
A = 7 , B = 8 , C = 9
-
交换
- 在有些时候我们要实现两个值的的交换,往往需要引入第三个参数,这里可以用封装、解构来实现
栗子 :
A = 6
B = 9
- 通常情况下可以用下面这种方式实现,不过看起来略啰嗦 hia ~
temp = A
A = B
B = temp
print(A, B)
A = 9 , B = 6
- 这样看起来是不是更舒服呢
A, B = B, A #等号右边使用了封装
print(A, B) #左边使用了解构实现了值得交换
A = 9 , B = 6
Python 3 中的解构
-
使用 " * " 变量名接收,但不能单独使用
-
被 " * " 变量名收集后组成一个列表
栗子 :
lst = list(range(1,10,2))
head, *mid, tail = lst
print(head)
print(*mid)
print(tail)
#结果依次为
1
3 5 7 # *mid 收集了除head和tail的其他元素
9
丢弃变量
-
如果不关心一个变量,就可以定义改变变量名字为 " _ "
-
" _ " 是一个合法标识符,可以作为有效变量使用,但是定义成下划线就是不希望被使用,除非你明确知道这个数据需要使用
栗子 :
lst = [2, 4, 5, 7, 9, 22]
head, *_ , tail = lst
print(head)
2
print(*_) #既然用"_"表示变量不想被使用
4, 5, 7, 9 #这里就没必要print了,这里为了大家理解
print(tail)
22
总结
"_" 这个变量本身没有任何语义,也没有任何可读性,所以不是用来给人使用的
Python中很多库都使用这个" _ “变量,使广泛。不要在不明确变量作用域情况下使用,免得造成和库中” _ "冲突