欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

老男孩python全栈开发视频教程_老男孩Python全栈开发(92天全)视频教程 自学笔记16...

发布时间:2025/3/15 python 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 老男孩python全栈开发视频教程_老男孩Python全栈开发(92天全)视频教程 自学笔记16... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

day16课程内容:

装饰器:

def outer():

x=10

def inner():

print(x)

return inner

outer()() #inner 是局部变量,10

闭包:如果在一个内部函数里,对外部作用域(但不是对全局作用域)的变量进行引用,那么内部函数就认为就被认为是闭包。

对修改封闭,对扩展开放,开放封闭原则!

import time

def foo():

print('foo')

time.sleep(1)

def bar():

print('bar')

time.sleep(1)

def show_time(f):

start_time=time.time()

f()

end_time=time.time()

print(end_time-start_time)

show_time(foo) #实现了给任意函数增加计时的功能,但是同时也改变了函数的调用方式

#########

import time

def show_time(f): #简单的装饰器

def inner():

start=time.time()

f()

end=time.time()

print(end-start)

return inner

@show_time # 等价于:foo=show_time(foo)

def foo():

print('拆东墙,当年的明月换拨人看。')

time.sleep(1)

foo()

#拆东墙,当年的明月换拨人看。

#1.0000572204589844 装饰器

@show_time

def bar():

print('兴也苦亡也苦')

time.sleep(2)

bar()

######给功能函数加参数,的装饰器###

import time

def show_time(f):

def inner(*x,**y):

start=time.time()

f(*x,**y)

end=time.time()

print(end-start)

return inner

@show_time

def foo(*a,**b):

sum=0

for i in a:

sum+=i

print(sum)

time.sleep(1)

foo(1,2,3,3,3,6)

# 18

# 1.0000569820404053

##给装饰器加参数的装饰器#####

import time

def logger(j=0):

def show_time(f):

def inner(*a,**b):

start=time.time()

f(*a,**b)

end=time.time()

print(end-start)

if j==1:

print('打印日志')

return inner

return show_time

@logger(1)

def foo(*x,**y):

sum=0

for i in x:

sum+=i

print(sum)

time.sleep(1)

foo(3,1,2,3)

# 9

# 1.0000572204589844

# 打印日志

总结

以上是生活随笔为你收集整理的老男孩python全栈开发视频教程_老男孩Python全栈开发(92天全)视频教程 自学笔记16...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。