python_慕课\python装饰器\3-1 python装饰器.py

来源:互联网 发布:数据库日志文件太大 编辑:程序博客网 时间:2024/05/20 10:21


-- 1-1 python装饰器之函数作用域   https://www.imooc.com/video/10834 



passline=60


def func(val):
    passline=90
    if val>passline:
        print('pass')
    else:
        print('failed')


def Max(v1,v2):
    return max(v1,v2)
func(44)
print(Max(2,33))


-- 2-1 python装饰器之闭包   https://www.imooc.com/video/10832 




def f_150(val):
    passline=90
    if val>=passline:
        print('%d pass'%val)
    else:
        print('failed')
def f_100(val):
    passline=60
    if val>=passline:
        print('%d pass'%val)
    else:
        print('failed')


def set_passline(passline):
    def cmp(val):
        if val>=passline:
            print("pass")
        else:
            print('failed')
    return cmp


f_20=set_passline(12)
f_20(13)




print(type(f_20))
print(f_20.__closure__)




#
# f_150(89)
# f_100(89)


-- 2-2 python装饰器之闭包2 https://www.imooc.com/video/10833 


def my_sum(*arg):
    print('in my_sum')
    # if  len(arg)==0:
    #     return 0
    # for val in arg:
    #     if not isinstance(val,int):
    #         return 0
    return sum(arg)
def my_average(*arg):
    # if  len(arg)==0:
    #     return 0
    # for val in arg:
    #     if not isinstance(val,int):
    #         return 0
    return sum(arg)/len(arg)




def dec(func):
    def in_dec(*arg):
        print('in dec arg=',arg )
        if len(arg) == 0:
            return 0
        for val in arg:
            if not isinstance(val, int):
                return 0
        return  func(*arg)
    return in_dec


# my_sum=in_dec(*arg)
my_sum=dec(my_sum)


print(my_sum(1,2,3,4,5))
# print(my_average(1,2,3,4,5))
# print(my_average())




-- 3-1 python装饰器   https://www.imooc.com/video/10835 




def dec(func):
    print('call dec')
    def in_dec(*arg):
        print('in dec arg=',arg )
        if len(arg) == 0:
            return 0
        for val in arg:
            if not isinstance(val, int):
                return 0
        return  func(*arg)
    print('return in_dec')
    return in_dec


# dec
def my_sum(*arg):
    print('in my_sum........')
    return sum(arg)




my_sum=dec(my_sum)
my_sum(1,23)
print(my_sum(1,23))








--
def deco(func):
    print('xxxxxxx')
    def in_deco(x,y):
        print('in deco')
        func(x,y)
    print('call deco...')
    print('yyyyyyyyyyyy')
    return in_deco




@deco
def bar(x,y):
    print('in bar ',x+y)


print(type(bar))
bar(1,2)









原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电脑模拟器微信附近人屏蔽了怎么办 美的电压锅漏气怎么办 电压力锅排气阀漏气怎么办 win10系统上不了网怎么办 手机自拍杆坏了怎么办 车辆遭核生化打击时怎么办? 遭核生化打击时怎么办? 车辆行驶中遭核生化打击时怎么办? 硫酸气体熏到嗓子怎么办 硫酸味儿进嗓子了怎么办 吸入二氧化氯气体后怎么办 衣服84消毒 变色了怎么办 我的身份证被诈骗犯知道了怎么办 母婴店来客人少怎么办 键盘驱动被卸载了怎么办 广州 狗狗随地大小便怎么办 上海 狗狗随地大小便怎么办 服装店人流量少生意差怎么办 2018年服装店生意特别差怎么办 打印机拍的照片打出黑怎么办 租的汽车撞了怎么办 神州租车车坏了怎么办 深圳市公安局办保安员证怎么办? 老婆被车撞了后失忆了怎么办 生气引起的短暂失忆怎么办 win10系统忘记开机密码怎么办 戴尔win10密码忘了怎么办 戴尔电脑win10密码忘了怎么办 出门忘记带身份证了怎么办 一年染了7次头发怎么办 低头久了颈椎疼怎么办 一只眼睛磨得慌怎么办 没有睡好眼睛痛怎么办 好几天没休息好怎么办 血糖高睡不好觉怎么办 眼睛感觉磨的慌怎么办 痔疮手术后大便疼肛裂痛怎么办 肛裂排便困难痛怎么办 智齿导致的牙疼怎么办 肛裂一直不愈合怎么办 孕妇肛裂拉屎疼怎么办