```python def singleton(cls): instances = {} def wrapper(*args, **kwargs): if cls not in instances: instances[cls] = cls(*args, **kwargs) return insta... ...
分类:
编程语言 时间:
2020-04-03 20:25:21
阅读次数:
172
在学习函数装饰器前,首先要学习高阶函数+函数嵌套+闭包 高阶函数 只要满足下列条件之一就是一个高阶函数: 1.函数接收的参数是一个函数名 2.函数的返回值是一个函数名 第一种情况:接收的参数是一个函数名 1 def foo1(name): 2 return name() 3 def foo2(): ...
分类:
编程语言 时间:
2020-03-28 23:09:17
阅读次数:
84
讲 Python 装饰器前,我想先举个例子,虽有点污,但跟装饰器这个话题很贴切。 谈装饰器前,还要先要明白一件事,Python 中的函数和 Java、C++不太一样,Python 中的函数可以像普通变量一样当做参数传递给另外一个函数,例如: 先来看一个简单例子,虽然实际代码可能比这复杂很多: 说到这 ...
分类:
编程语言 时间:
2020-03-27 21:48:42
阅读次数:
93
class Test(): xx = False def __init__(self): pass def test(func): def wrapper(self, *args, **kwargs): print(self.xx) return func(self, *args, **kwargs ...
分类:
编程语言 时间:
2020-03-03 15:02:36
阅读次数:
122
python装饰器的学习理解 自己的理解 装饰器是python语言中的高阶函数,被装饰的函数嵌套在装饰器内部,其目的可实现对被装饰函数的功能扩充。 举个例子,加深理解 任务:完成对执行函数func1的执行时间的记录 不用装饰器实现 # -*- coding: utf-8 -*-import time ...
分类:
编程语言 时间:
2020-02-28 22:25:03
阅读次数:
73
什么情况下可以使用装饰器:函数可以作为参数传递的语言,可以使用装饰? 装饰器的好处:可以极大地简化代码,在不改变原函数的基础上动态修改函数功能,避免每个函数写重复性代码.(可以让已有函数不做任何改动的情况下增加功能.可以使修改函数更加容易,本质上还是一个函数)经常用于以下方面: 1、打印日志 @lo ...
分类:
编程语言 时间:
2020-02-22 13:52:35
阅读次数:
80
1、必备知识 #### 第一波 #### def func(arg): print(arg) func #表示函数名 func() #表示执行函数 #### 第二波 #### def func(arg): print(arg) func = lambda x:print(x) func() # 执行 ...
分类:
编程语言 时间:
2020-02-07 01:25:28
阅读次数:
80
'''概念:是一个闭包,把一个函数当做参数,返回一个替代版的函数,本质上就是一个返回函数的函数'''#简单的装饰器def func1(): print("sunck is a good man")def outer(func): def inner(): print("*************** ...
分类:
编程语言 时间:
2020-02-02 19:54:39
阅读次数:
92
装饰器在Python中是一个强大的高级用法,并且在流行Python框架中变得越来越常见。经常会用到装饰器来增强函数的行为(动态的给一个对象添加一些额外的职责),包括记录日志,权限校验,性能测试,数据封装等。有了装饰器,我们可以抽离出大量和函数功能本身无关的雷同代码并继续重用。 Python装饰器有两 ...
分类:
编程语言 时间:
2020-01-29 23:42:39
阅读次数:
93
装饰器器的出现主要是为了在不修改原函数的前提下对被装饰函数添加一些额外功能(如打印日志,权限验证等),利用的python原理,就是一切兼对象,函数也可以作为参数进行传递。 #!/usr/bin/env python import time def demo(myfunc): def wraper() ...
分类:
编程语言 时间:
2020-01-26 19:30:39
阅读次数:
83