1. 封装
什么是封装?封装一般是相对类、对象而言的,把你不想让别人知道细节的东西包起来,对外只暴露个接口。
当前,我们抛开类,只看看在基本数据类型上是怎么应用“封装”的
封装:
- 将多个值使用逗号(,)分割后组合在一起;
- 本质上,返回的是一个元组,只是省掉了小括号
【实例 1】封装的应用
t = 3, 5 # 相当于 t = (3, 5)
temp = a
a = b
b = temp
# 将 a, b 的值互换,等价于
a, b = b, a
2. 解构
- 把线性结构的元素解开,并顺序的赋给其它变量
- 接纳的变量数要和解构开的元素个数一致,比如
【实例 2】解构的应用
lst = [1, 3, 5]
first, second, third = lst
data = list(range(1, 15, 2)) # [1, 3, 5, 7, 9, 11, 13]
first, *other = data
first, *middle, last = data
first, *_, last = data
说明:
- *var_name,表示接收多个值,元素个数可变的;
- 使用 *var_name 接收时,不能单独使用,收集后组成的是一个列表list;
- _也是一个变量名,只不过有特别的含义;
丢弃变量(**_**) :
- _ 变量是一个合法的标识符,也可以作为有效的变量使用;
- 但有个不成文的规定(非标准),如果是后续不会使用的数据需要找个变量存放,这时就可以把即将要丢弃的数据暂时用 _ 存储下,然后丢弃不用;
- _ 本身无任何意义,也没有可读性;
- 有很多第三方库都用到了 ,故请不要在不明确变量作用域的情况下,使用 导致和其他库中的_冲突;
【实例 3】丢弃变量 _ 的应用
user_path = r'JAVA_HOME=/usr/bin/' # 环境变量
key, _, val = user_path.partition('=') # 提取出变量名和值