日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python-study-12

發布時間:2024/6/30 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python-study-12 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

復習

上節課復習
函數嵌套
函數的嵌套定義
函數的嵌套調用
函數對象
可以將定義在函數內的函數返回到全局中使用,從而打破函數的層級限制
名稱空間與作用域
LEGB
作用域關系在函數定義階段時就已經固定死了,與調用位置無關

今日內容:
1、閉包函數
2、裝飾器

1閉包函數

作用域關系在函數定義階段時就已經固定死了,與調用位置無關
即:在任意位置調用函數都需要跑到定義函數時尋找作用域關系

閉包函數:
閉指的是:該函數是一個內部函數
包指的是:指的是該函數包含對外部作用域(非全局作用域)名字的引用

為函數體傳值的方式一:使用參數的形式
為函數體傳值的方式二:包給函數 #相比參數傳值的方式可以一次賦值多次使用

2裝飾器

1、什么是裝飾器
器指的是工具,而程序中的函數就具備某一功能的工具
裝飾指的是為被裝飾器對象添加額外功能

就目前的知識來看:
定義裝飾器就是定義一個函數,只不過該函數的功能是用來為
其他函數添加額外的功能

其實:
裝飾器本身其實可以是任意可調用的對象
被裝飾的對象也可以是任意可調用的對象


2、為什么要用裝飾器
軟件的維護應該遵循開放封閉原則
開放封閉原則指的是:
軟件一旦上線運行后對修改源代碼是封閉的,對擴展功能的是開放的
這就用到了裝飾器

裝飾器的實現必須遵循兩大原則:
1、不修改被裝飾對象的源代碼
2、不修改被裝飾對象的調用方式
裝飾器其實就在遵循1和2原則的前提下為被裝飾對象添加新功能

3、如何用裝飾器 裝飾器語法糖 在被裝飾對象正上方,并且是單獨一行寫上@裝飾器名裝飾器實例: import time def timmer(func):#func=最原始的indexdef wrapper(*args,**kwargs):start=time.time()res=func(*args,**kwargs)stop=time.time()print('run time is %s' %(stop - start))return resreturn wrapper@timmer # index=timmer(index) def index():print('welcome to index')time.sleep(3)return 123@timmer # home=timmer(home) def home(name):print('welcome %s to home page' %name)time.sleep(2)res=index() home('egon')裝飾器模板 def deco(func):def wrapper(*args,**kwargs):res=func(*args,**kwargs)return resreturn wrapper @deco View Code

?

轉載于:https://www.cnblogs.com/xujinjin18/p/9168604.html

總結

以上是生活随笔為你收集整理的python-study-12的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。