PYTHON--装饰器

定义:装饰器本质是函数,装饰其他函数,也就是为其他函数添加附加功能
原则: 1、不能修改被装饰的函数的源码
2、不能修改被装饰的函数的调用方式

装饰器的基础知识:
1、函数即“变量”
2、高阶函数
a、把一个函数名当成实参传递给另外一个函数
(在不修改被装饰函数源代码的情况下为其添加功能)
b、返回值中包含函数名(不修改函数的调用方式)
3、嵌套函数(在函数体内通过def声明的函数)

装饰器 = 高阶函数 + 嵌套函数

def bar()
pass
bar ----输出的函数的内存地址
bar() ----运行函数
以上就可以说名函数即“变量”

#牛逼的装饰器

def auth(auth_type):
    print('auth_type is :',auth_type)
    def outer_wapper(func):
        print('func is',func)
        def wapper(*argv,**kwargv):       #可以传入参数
            if auth_type == 'local':
                user =input('please input your user name:').strip()
                password = input('plesase input your password:').strip()
                if user_name == user and pass_wd ==password:
                    print('\033[31;1m我就是要红色字体,给不给\033[0m')
                    res = func(*argv,**kwargv)
                else:
                    print('请输入正确密码,摄像头宝宝')
            elif auth_type =='ldap':
                print('ldap是什么鬼,老子就是不会')
        return wapper					#返回wapper的函数内存函数地址
    return outer_wapper              	#返回outer__wapper的函数内存地址
@auth(auth_type='local')         		#index = out_wapper(index)   把wapper的函数地址传递给index
def index(address,test):				#			
    print('这是一个普通的{address},一个不同的{test}'.format(address=address,test=test))
index('旧金山','试验')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值