Python封装、结构

本文探讨了Python中的封装和解构概念。封装是通过逗号分隔的值创建元组,而解构则是将线性结构的元素赋值给多个变量。Python3的解构特性允许使用星号(*)来收集元素成列表。此外,还介绍了丢弃变量的惯例,通常用下划线(_)表示不关心的变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

封装和解构

封装:

    将多个值使用逗号分割,组合在一起
    本质上,返回一个元祖,只是省掉了小括号

Python特有语法,被很多语言学习和借鉴:

t1 = (1,2) #定义为元组
t2 = 1,2 #将1和2封装成元组
type(t1)  
tuple
type(t2)  
tuple
举例:
a = 4
b = 5
temp = a
a = b
b = temp
等价于
a,b=b,a
  • 上句中,等号右边使用了封装,而左边就使用了解构
解构:

    把线性结构的元素解开,并顺序的赋给其他变量
    左边接纳的变量数要和左边解开的元素个数一致

举例:
lst = [3,5]
first,second = lst
print(first,second)	

a,b=(1,2)
a,b=[1,2]
a,b=[10,20]
a,b={10,20}
a,b={'a':10,'b':20}  #非线性结构也可以解构
a,b={10,20,30} #错误
a,*b={10,20,30}
[a,b]=(1,2)
[a,b]=10,20
(a,b)={30,40}  ##a=40,b=30   集合它是一个非线性结构所以无序
Python3的解构

    使用* 变量名 接收,但不能单独使用
    被* 变量名收集后组成一个列表

举例:
lst = list(range(1,101,2))
head,*mid,tail = lst
*lst2 = lst  #!!不能单独使用
*body,tail=lst
head,*tail=lst
head,*m1,*m2,tail=lst #!!!不可以出现两个*
head,*mid,tail="abcdefghijklmn"
type(mid)
丢弃变量:

    这是一个惯例,是一个不成文的约定,不是标准
    如果不关心一个变量,就可以定义改变量的名字为_
    _是一个合法的标识符,也可以作为一个有效的变量使用,但是定义成下划线就是希望不要被使用,除非你明确的知道这个数据需要使用

举例:
lst = [9,8,7,20]
first,*second = lst
head,*_,tail = lst
print(head)
print(tail)
#_是合法的标识符,看到下划线就知道这个变量就是不想被使用
print(_)
		
_,*_,tail = lst
print(_)  [8,7]
print(tail) [20]
print(_) [8,7]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值