博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 笔记 之带参数的装饰器
阅读量:6089 次
发布时间:2019-06-20

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

hot3.png

# 带参数的装饰器def startEnd(fun):    def wraper(name):        print("!!!!!!!!!!!!start!!!!!!!!!")        fun(name)        print("!!!!!!!!!!!!!end!!!!!!!!!")    return wraper# 返回值是wraper函数# hello()相当于执行wraper()@startEnddef hello(name):    print("hello {0}".format(name))hello("boy")# 在不改变代码的情况下,给现有的函数增加新的功能# 装饰器通过@进行使用,相当于把hello()函数作为参数# @startEnd  相当于  hello = startEnd(hello())# 当调用hello()的时候,就相当于调用了startEnd(hello())# 装饰器其实就是要你的内存地址# 重新给你封装新的内存 地址。# 你执行的时候是执行新的内存地址# a = hello# a() 相当于hello()# a = startEnd(hello)# a = hello   核心def author(mm):    def hello(fun):        def preHello(name):            print("This author is {0}".format(mm))            print("###########start################")            fun(name)            print("############end#################")        return preHello    return hello@author("aaa")       #装饰器最外面的一个传入的参数def cs(name):        #装饰器传入的函数,中间那个    print("welcome  {0}".format(name))# xx = author("chen")(cs)# xx("aaaavvvvv")cs("ffffffff")      #装饰器最里面传入的参数# 类的定义class ActioinSelect():    def hello(self):        print("hello world")# 初始化一个类 actionSelect = ActioinSelect()actionSelect.hello()   #调用函数# module 类# 函数# 一个module和一个目录的区别# 属于一个包

转载于:https://my.oschina.net/u/3824134/blog/1797565

你可能感兴趣的文章
cocos2dx[3.2]实战篇——《三消类游戏》学习心得
查看>>
谁策划了互联网“国会纵火案”?
查看>>
Nginx的安装及使用
查看>>
ABAP日期函数应用
查看>>
我的友情链接
查看>>
如何辨别PPT中同一页面堆积的各类元素?
查看>>
我是如何入门、成长并进阶为数据分析师的?
查看>>
PHP7安装扩展
查看>>
linux磁盘加密
查看>>
URL去除.php或.html等后缀
查看>>
重启(reboot)和关闭系统(poweroff)命令
查看>>
windows 下oracle的服务操作说明
查看>>
ROWNUM使用大于查不到值的问题(查询大于10小于21 范围内的数据)
查看>>
centos7下配置tomcat
查看>>
in和exists的区别以及exists和distinct去重的区别?
查看>>
一次关于汽车的想象
查看>>
MYSQL的mysqldump+binlog备份
查看>>
运维工具
查看>>
laravel数据库查询是use方法的使用
查看>>
Saltstack-12:prod生产环境部署keepalived
查看>>