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
上一篇:Python面向对象(继承、多态、封装、传参方式、鸭子类型、局部变量)
下一篇:释放流程(RRC连接释放、去附着)

发表评论

最新留言

不错!
[***.144.177.141]2025年04月24日 12时40分54秒