python入门(十五):装饰器】的更多相关文章

一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里面每个函数都加一个功能,用来统计每个函数的运行时间是多少,找出来运行比较慢的函数,来优化代码,就需要添加一个新的功能,来统计程序的运行时间,那这样的话,就得修改每个函数了,需要改代码,但是代码特别多,改完了公司倒闭了,这时候装饰器就能排上用场了,它可以不改变原有的函数,原来的函数和原来一模一样,什么…
1,装饰器的形成 编程原则:开放封闭原则. 开放:对扩展是开放的 封闭:对修改是封闭的 因为修改是封闭的,所以为了对函数进行功能的扩展,就使用装饰器! 2,装饰器的定义 # wrapper就是一个装饰器函数,就是对一个函数有一些装饰效果 def wrapper(f): # 装饰器函数,f是被装饰的函数 def inner(*args, **kwargs): # 在被装饰函数之前想增加的功能 ret = f(*args, **kwargs) # 被装饰的函数 # 在被装饰函数之后想增加的功能 re…
初学 Python(十五)--装饰器 初学 Python,主要整理一些学习到的知识点,这次是生成器. #-*- coding:utf-8 -*- import functools def current(): print 'nihao' current() g = current g() #函数有默认字段__name__(2个下划线) print current.__name__ print g.__name__ ''''' 装饰器的定义 在不改变某个函数的内部代码的情况下 在执行函数的前后加上…
Python 入门之 Python三大器 之 装饰器 1.开放封闭原则: (1)代码扩展进行开放 ​ 任何一个程序,不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改.所以我们必须允许代码扩展.添加新功能. (2)修改源代码是封闭 ​ 当我们写的一个函数,已经交付给其他人使用,如果这个时候我们对函数内部进行修改,或者修改了函数的调用方式,很有可能影响其他已经在使用该函数的用户. 在不修改源代码及调用方式,对功能进行额外的添加就是开放封闭原则 2.装饰器: 在不改变原被装饰的函数的源…
Python第十五天  datetime模块 time模块   thread模块  threading模块  Queue队列模块  multiprocessing模块  paramiko模块  fabric模块 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天  变量  运算符与表达式  input()与raw_input()区别  字符编码  python转义符  字符串格式化 Python第三天 序列  5种数据类型  数值  字符串…
前言 python内部有许多内建装饰器,它们都有特别的功能,下面对其归纳一下. 系列文章 python设计模式之单例模式(一) python设计模式之常用创建模式总结(二) python设计模式之装饰器详解(三) python设计模式之内置装饰器使用(四) python设计模式之迭代器与生成器详解(五) python自带装饰器 staticmethod staticmethod装饰器的功能是去除类的方法默认第一个参数是类的实例,使得该方法成为一个普通的函数,staticmethod是一个类,属于…
孤荷凌寒自学python第二十五天python的time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 通过对time模块添加引用,就可以使用python的time模块来进行相关的时间操作了. 引用time模块的方法是: import time 在python中有四种表示 时间 的方式: 一.标准时间字符串 standard string 示例: %a    %b  %d  %H:%M:%S  %Y mon.  09  02 18:32:59  2018 星期几  月  日  时:…
孤荷凌寒自学python第十五天python循环控制语句 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中只有两种循环控制语句 一.while循环 while 条件判断式 1: 如果 条件判断式1 返回True 将执行此代码块的内容 而且此代码块的内容执行完成后 将重新判断条件判断式1 continue  #如果出现此命令,则本代码块此行后面的语句不再执行,然后直接重新判断条件判断式1,以期再次执行本代码块. break  #如果出现此命令,则完全跳出while循环,直接执…
Python中利用函数装饰器实现备忘功能 这篇文章主要介绍了Python中利用函数装饰器实现备忘功能,同时还降到了利用装饰器来检查函数的递归.确保参数传递的正确,需要的朋友可以参考下   "备忘"的定义 "memoization"(备忘)这个词是由Donald Michie在1968年提出的,它基于拉丁语单词"memorandum"(备忘录),意思是"被记住".虽然它和单词"memorization"在某种…
之前用python简单写了一下斐波那契数列的递归实现(如下),发现运行速度很慢. def fib_direct(n): assert n > 0, 'invalid n' if n < 3: return n else: return fib_direct(n - 1) + fib_direct(n - 2) 然后大致分析了一下fib_direct(5)的递归调用过程,如下图: 住:这里的f(2)调用f(1)仅代表基本操作的次数. 可以看到多次重复调用,因此效率十分低.进一步,可以算出递归算法…