`
viking2439
  • 浏览: 49571 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

装饰器小例子

 
阅读更多

把函数得到的东西*2:

 

def d(func):
	def x(*arg, **args):
		return func(*arg, **args)*2
	return x

@d
def add(a, b):
        return a+b

 

简单权限判断, 通过则执行所装饰的函数:

def CP(test):
	def dec(func):
		def wrap(*args, **kwags):
			if test:
				return func(*args, **kwags)
			else:
				print 'You do not have Permssion'
		return wrap
	return dec

 

@CP(0)
def add(a, b):
        return a+b
 

add(1, 2) 

输出: You do not have Permssion

 

@CP(1)
def add(a, b):
        return a+b
 

add(1, 2)

输出: 3

分享到:
评论

相关推荐

    TypeScript装饰器定义 类装饰器 属性装饰器 装饰器工厂.zip

    在这个例子中,`logClass`是一个类装饰器,它会在`MyClass`被创建时打印一条消息。 3. 属性装饰器: 属性装饰器用于修改类的属性行为或元数据。它们被放在属性声明之前,可以用来记录属性的创建、执行额外的初始化...

    装饰模式简单例子

    4. **具体装饰器(Concrete Decorator)**:装饰器的子类,提供了具体的附加行为。例如,`Mocha`、`WhippedCream` 和 `Soy` 分别代表摩卡、奶油和豆浆,它们都是 `CondimentDecorator` 的实现,增加了咖啡的味道和价格...

    TypeScript装饰器 方法装饰器 方法参数装饰器 装饰器的执行顺序.zip

    下面的例子展示了如何创建一个方法装饰器来计算方法的执行时间: ```typescript function timer(target: Object, key: string, descriptor: PropertyDescriptor) { const originalMethod = descriptor.value; ...

    装饰器---python.pdf

    在这个例子中,`log('execute')`作为装饰器工厂函数被调用,并返回了一个装饰器`decorator`,随后`now`函数被`decorator(now)`所装饰。装饰之后的`now`函数,其本质就是调用`wrapper`函数。 总结而言,Python装饰器...

    Python 装饰器实现DRY(不重复代码)原则

    在文档提供的内容中,提到了一个具体的例子,说明了装饰器是如何帮助我们实现DRY原则的。在这个例子中,作者遇到了一个问题,需要编写多个API方法,这些方法都需要返回JSON响应,并且在遇到非POST请求时返回错误信息...

    Python装饰器模式学习demo

    在这个例子中,类装饰器通过实现`__call__`方法使类实例可调用。 以上就是"Python装饰器模式学习demo"中涉及的主要内容。通过这个项目,你可以深入理解装饰器的工作原理,以及如何在实际项目中应用它们。实践中,...

    设计模式-装饰器模式

    在这个例子中,`Coffee`是具体组件,`WithMilk`和`WithSugar`是具体装饰器,它们分别增加了加奶和加糖的行为,并调整了价格。装饰器模式让添加新功能变得简单,只需创建新的装饰器类,而无需修改`Coffee`类。 总结...

    2 装饰器模式-MOOC课程内容.pdf

    在给出的MOOC课程内容中,以Java Swing组件库为例子,对装饰器模式进行了说明。具体的实现方式如下: - Decorator类是所有装饰器的基类,它继承自JComponent。它接收一个Component类型的参数,并在构造器中进行布局...

    Node.js-koa2路由的装饰器

    在这个例子中,`@route('/')`装饰器用于定义HomeController类处理根路径的请求,`@get('/')`和`@post('/submit')`则分别对应GET和POST请求。 ### 装饰器的优势 1. **代码整洁**:装饰器使得路由定义更加直观,避免...

    23设计模式之装饰器模式-前端篇.pptx

    虽然在当前版本的JavaScript(ES2022)中,装饰器仍处于提案阶段,但已经有许多库和框架,如Angular,开始支持和使用装饰器。 在前端开发中,装饰器模式常用于实现AOP(面向切面编程),比如日志记录、性能监控、...

    设计模式--装饰者模式java例子

    1. **组件(Component)**:定义了对象的接口,也就是所有被装饰对象和装饰器对象必须共同遵循的公共行为。这个接口使得装饰者和被装饰的对象可以互换,实现了无缝对接。 2. **具体组件(Concrete Component)**:...

    Python @函数装饰器及@staticmethod,@classmethod.docx

    下面的例子展示了如何创建一个返回函数的装饰器,并利用它来修改被装饰的函数的行为: ```python def foo(fn): def bar(*args): print("===1===", args) n = args[0] print("===2===", n * (n - 1)) print(fn....

    装饰器模式 完整示例代码

    装饰器模式是一种设计模式,它允许我们向一个对象添加新的行为或责任,而无需修改该对象的源代码。这种模式是面向对象设计中用于扩展功能的一种灵活方式,它遵循“开闭原则”,即对扩展开放,对修改关闭。在Python等...

    9.装饰器1

    1. **名称管理**:装饰器允许我们保留原始函数名称,而不会引入新的变量名,如在例子中,`add = decorate(add)`,`add`函数被`decorated_add`所替代,但通过装饰器,我们可以继续使用`add`这个名字。 2. **显示调用*...

    Python 实用小例子

    10. **递归和装饰器**:递归是解决复杂问题的一种方法,装饰器则允许我们修改或增强已有函数的功能。例子中可能包含这两种高级编程技巧的应用。 通过这些小例子,学习者可以深入理解Python的语法特性,提升编程能力...

    Python装饰器限制函数运行时间超时则退出执行

    在这个例子中,`@my_decorator` 表示`say_hello`函数会被`my_decorator`装饰器所装饰,即在调用`say_hello`时,实际上是先调用了`my_decorator`返回的新函数`wrapper`。 #### 方法一:使用`signal`模块 在Python中...

    java Decorator装饰模式例子

    1. **Component(组件)**: 这是所有具体组件和装饰器的共同接口或抽象类,定义了组件的基本行为。 2. **Concrete Component(具体组件)**: 它实现了Component接口,提供了基础功能。在示例中,这可能是某个基础的...

    Python之装饰器共6页.pdf.zip

    在这个例子中,`decorator`是装饰器函数,`wrapper`是内部函数,它接收`target_function`作为参数,并在其前后添加额外的功能。`@decorator`语法糖就是将`target_function`传递给`decorator`,并将返回的`wrapper`...

    python 装饰器(示例)

    在这个例子中,`simple_decorator`是一个装饰器,它接受一个函数`func`作为参数,并返回一个新的函数`wrapper`。`wrapper`函数在调用`func`之前和之后分别打印出“Before function call.”和“Aftet function call....

    Python-rediscache一个Redis的缓存装饰器

    "Python-rediscache"是一个利用Redis作为缓存存储的装饰器库,专门用于简化Python应用中的缓存管理。下面将详细阐述这个库的核心概念、工作原理以及如何使用。 1. **Redis简介** Redis是一个高性能的键值存储系统...

Global site tag (gtag.js) - Google Analytics