博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python装饰器主要用法
阅读量:5012 次
发布时间:2019-06-12

本文共 1254 字,大约阅读时间需要 4 分钟。

#!/usr/bin/env python3# -*- coding: utf-8 -*-__author__ = '人生入戏'user = "admin"passwd = "123456"def auth(auth_type):    #print("auth_type:",auth_type)    def out_wrapper(func):        #print("func",func)        def wrapper(*args,**kwargs):            #print(args,kwargs)            if auth_type == "1":                username = input("username:").strip()                password = input("password:").strip()                if username == user and password == passwd:                    print("start".center(20,"-"))                    res = func(*args,**kwargs)#把函数的返回值赋值到res                    print("end".center(20,"-"))                    return res#返回函数的返回值                else:                    print("error!")            elif auth_type =="2":                print('2')        return wrapper    return out_wrapperdef index():    print("index ok")@auth(auth_type="1")def home(name):    print("home ok",name)    return 'from home'@auth(auth_type="2")def bbs():    print("bbs ok")index()print(home("你好"))#打印home函数的返回值bbs()'''装饰器:定义:本质是函数,就是为了给其他的函数增加其他功能原则:不能改变被装饰函数的源码和调用方式''''''一、函数等于'变量'二、高阶函数:    1.把一个函数名当作实参传给另一个函数(在不修改被装饰函数的代码的情况下增加其他功能)    2.返回值包含函数名(不修改函数的调用方式)三、嵌套函数''''''嵌套函数+高阶函数=装饰器'''

 

转载于:https://www.cnblogs.com/my-times/p/7351868.html

你可能感兴趣的文章
linux故障判断
查看>>
Leetcode 23. Merge k Sorted Lists(python)
查看>>
Java进阶知识点6:并发容器背后的设计理念 - 锁分段、写时复制和弱一致性
查看>>
Makefile ===> Makefile 快速学习
查看>>
face detection[HR]
查看>>
java性能调优工具
查看>>
C# 其他的Url 文件的路径转化为二进制流
查看>>
cmake使用
查看>>
ios7上隐藏status bar
查看>>
构造方法和全局变量的关系
查看>>
python3基础05(有关日期的使用1)
查看>>
ArrayList的使用方法
查看>>
面向对象高级
查看>>
Bitwise And Queries
查看>>
打印Ibatis最终的SQL语句
查看>>
HBase之八--(3):Hbase 布隆过滤器BloomFilter介绍
查看>>
oracle连接问题ORA-00604,ORA-12705
查看>>
NOI 2019 退役记
查看>>
java的几个日志框架log4j、logback、common-logging
查看>>
Java从零开始学十三(封装)
查看>>