
Python基础(可变数据类型不能做函数参数、装饰器、剥皮函数、时间间隔)
发布日期:2021-05-14 22:00:50
浏览次数:16
分类:精选文章
本文共 1248 字,大约阅读时间需要 4 分钟。
1.可变数据类型不能做函数参数:
参数会动态改变
def func(a, l=[]): l.append(a) print(id(l)) return lf1 = func(1)print(f1) # [1] l的id:2174081262216f2 = func(2,[1])print(f2) # [1, 2] l的id:2174083239112f3 = func(3)print(f3) # [1, 3] l的id:2174081262216print(f1, f2, f3) # [1, 3] [1, 2] [1, 3]
代码中传参的列表对象是可变数据类型,指向同一块内存;
手动传入的list对象是另一个内存2.打乱列表内容:
使用random模块下的shuffle方法
# 打乱列表内容import randomlist1 = [1, 2, 3, 4, 5]random.shuffle(list1)print(list1)
3.装饰器:
外层函数outer的参数是一个函数f,内层函数inner调用外层函数的参数(函数f)然后返回这个参数的结果,外层函数返回值为内层函数
# 装饰器函数def outer(f): def inner(*args, **kwargs): print('11111') res = f(*args, **kwargs) print('22222') return res return inner@outerdef say_hi(name): print('hi,', name)say_hi('wangyudong')执行结果:11111hi, wangyudong22222
4.剥皮函数:
把[1, 2, 3, [4, 5, [6, 7]], [8, 9], 10]列表里的嵌套列表元素拿出来
# 剥皮函数def func(list1): res =[] for i in list1: if isinstance(i, list): for j in func(i): res.append(j) else: res.append(i) return reslist1 = [1, 2, 3, [4, 5, [6, 7]], [8, 9], 10]print(func(list1))执行结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
5.时间间隔:
# 时间间隔import datetimenow_time = datetime.datetime.now()latter_time = datetime.timedelta(days=7)res_time = now_time + latter_timeprint(now_time, res_time)执行结果:2020-09-19 14:47:30.252049 2020-09-26 14:47:30.252049
发表评论
最新留言
不错!
[***.144.177.141]2025年04月24日 12时40分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
无法初始化Winsock2.2处理
2019-03-12
Horizon Cloud之UAG访问异常
2019-03-12
vm无法打开电源
2019-03-12
vMotion 操作失败进度卡在14% ,报错: Operation Timed out
2019-03-12
重置UAG Application admin密码
2019-03-12
Horizon Daas租户管理平台扩展分配时报:内部错误
2019-03-12
vcenter访问报503错误处理
2019-03-12
项目计划甘特图绘制说明
2019-03-12
09.QT应用程序启动外部exe文件
2019-03-12
1009. clion调试段错误
2019-03-12
C/C++:线性表之顺序表
2019-03-12
嵌入式系统试题库(CSU)
2019-03-12
图神经网络7日打卡营学习心得
2019-03-12
electronJS 开发linux App
2019-03-12
MbedOS 设备中的模数转换(ADC)
2019-03-12
【vue】setInterval的嵌套实例
2019-03-12
【SpringBoot】如何配置热部署
2019-03-12
【rabbitMQ】04 如何实现高可用?
2019-03-12
【自考】之信息资源管理(一)
2019-03-12