栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

视频-python装饰器笔记(待补充)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

视频-python装饰器笔记(待补充)

1.函数作用域(L>E>G>B)
L: local函数内部作用域
E: enclosing函数内部与内嵌函数之间
G: global全局作用域
B: build-in内置作用域
例子:

passline = 60  #全局作用域
def func(val):
    if val >= passline:
 print('pass')
    else:
 print('fail')    
print func(89)   #输出pass
passline = 60  #全局作用域
def func(val):
    passline = 90  #内部作用域
    if val >= passline:
 print('pass')
    else:
 print('fail') 
    def in_func():
 print(val)
    in_func()    #  输出val的值 89
print func(89)   #输出fail,首先会取内部作用域(L>E>G>B)
def MAX(x,y):
    return max(x,y)   #内置作用域
print(MAX(2,3))   #输出3

2.python闭包
closure:内部函数中对enclosing作用域的变量进行引用。
函数实质与属性:

  1. 函数是一个对象
  2. 函数执行完成后内部变量回收
  3. 函数属性
  4. 函数返回值
    例子:
    passline = 60  #全局作用域
    def func(val):
    print('%x' %id(val))  #输出6e3fd750
    if val >= passline:
        print('pass')
    else:
        print('fail') 
    def in_func():
        print(val)
    in_func()    
    return in_func

f = func(89) #输出 pass 89
f() #in_func 输出89
print(f.closure) #输出(,)

闭包处理:

def set_passline(passline):
def cmp(val):
if val >= passline:
print('pass')
else:
print('fail')
return cmp
f_100 = set_passline(60)
f_150 = set_passline(90)
f_100(89)
f_150(89)

闭包作用:
 1. 封装
 2. 代码复用
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/226134.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号