`

python装饰器之类内部成员装饰

 
阅读更多
class TestA(object):
  def __init__(self,name):
    self.name=name

  def tryit(func):
    def  _tryit(*args,**xargs):
      args[0].funcA()
      try:
        return func(*args,**xargs)
      finally:args[0].funcB()
    return _tryit


  def funcA(self):
    print 'hello',self.name

  def funcB(self):
    print self.name,'baby~'

  @tryit
  def funcC(self,a1,a2):
    print a1+a2

  @tryit
  def funcD(self,m):
    print self.name,m

if __name__ =='__main__':

  a=TestA('zhangxiaomeng')
  a.funcC('EAT...','PLAT.....')
  a.funcD('SWIM.......')

 结果

 

hello zhangxiaomeng
EAT...PLAT.....
zhangxiaomeng baby~
hello zhangxiaomeng
zhangxiaomeng SWIM.......
zhangxiaomeng baby~

 

分享到:
评论

相关推荐

    python code patterns

    - **概念区别**:装饰器是一种语言特性,而装饰器模式是设计模式之一。 - **应用场景**:装饰器更适用于函数和类级别的增强,而装饰器模式适用于对象的动态包装。 #### Function Decorators (函数装饰器) - **无参...

    Python Interview

    元类是Python中的高级特性之一,它允许我们控制或定制类的行为。简单来说,元类就是创建类的“类”。在Python中,所有类都是`type`类的实例,这意味着我们可以使用`type`来创建新的类。通过定义自己的元类,开发者...

    FluentPython英文正式版(非提前版)

    6. 元编程:理解属性(properties)、属性描述符(attribute descriptors)、类装饰器(class decorators)以及元类(metaclasses)的工作原理。元编程是高级Python编程中非常强大的特性,可以帮助程序员编写出能够...

    第11章 python类与对象-python基础,快速入门.pptx

    面向对象编程是Python编程的核心概念之一,它基于类和对象的概念,使得代码更加模块化、易于维护和扩展。本章将深入讲解Python中的类与对象的基础知识,包括它们的定义、使用以及面向对象编程的基本原则。 1. **类...

    经典Python面试题之Python基础篇.docx

    - **IronPython**: 运行于 .NET 平台的 Python 解释器。 - **PyPy**: 基于 JIT 技术的 Python 解释器,提高了执行效率。 #### 6. 位和字节的关系? - **位**: 计算机中最小的数据单位,只有 0 或 1 两种状态。 - *...

    阿里python面试题之 – 年薪40万Python工程师

    5. **装饰器、描述符、元类**: - 装饰器(Decorator)用于在不修改原有函数代码的情况下,扩展或修改函数功能,如`@staticmethod`, `@classmethod`, `@property`等。 - 描述符(Descriptor)是实现了`__get__`, `...

    Python 3 Object-Oriented Programming, 2nd Edition

    - **装饰器**:装饰器是一种特殊的Python语法结构,用于在不修改原始函数或类的情况下增加额外的功能。 - **模块与包**:模块是包含Python定义和语句的文件,包则是包含模块的文件夹。它们用于组织和管理代码。 ###...

    python面向对象

    - **方法**:与特定对象关联的函数,通常在类内部定义。 **定义类的基本语法**: ```python class ClassName: # 属性定义 attr = value # 方法定义 def method_name(self, arg1, arg2): # 方法体 ``` 例如...

    Python之使用@property共4页.pdf.zip

    在Python编程语言中,`@property`装饰器是一个强大的工具,它允许我们创建具有getter、setter和deleter方法的属性,从而实现对类中变量的访问控制。这个概念是面向对象编程中的一个重要组成部分,特别是在设计复杂的...

    完整版 零基础学Python课件07 第7章 面向对象程序设计.ppt

    公有成员可以被类的外部访问、私有成员只能在类内部访问,保护成员只能在类和其子类中访问。 六、`__init__` 方法 `__init__` 方法是类的特殊方法,它在类的实例创建时被调用。`__init__` 方法用于初始化类的实例...

    廖雪峰python教程【完整版】.pdf

    - **4.4 装饰器**:装饰器是Python中的一个高级话题,可以用来增强或修改函数的行为。 - **4.5 偏函数**:偏函数可以固定住部分参数来调用另一个函数。 #### 5. 模块 - **5.1 使用模块**:模块是包含Python定义和...

    艾伯特python新员工教材

    - **静态方法**:使用`@staticmethod`装饰器定义静态方法,不需要访问类的状态。 - **单继承**:展示如何使用继承来扩展类的功能。 #### 十三、模块与包 - **对于模块的理解**:解释模块的概念及其在Python中的...

    Python_编码风格指南中译版

    Python提供了一些高级特性,如装饰器、元类、协程等。这些特性虽然强大,但使用不当可能会增加代码的复杂度。只有在真正需要它们的情况下,才应当考虑使用。 #### 二、Python编码风格方面的准则 **2.1 分号** ...

    Packt.Python.3.Object-Oriented.Programming.2nd.Edition.1784398780.zip

    书籍可能还会涉及一些常见的面向对象设计模式,如工厂模式、单例模式、装饰器模式等,这些都是解决特定问题的常用策略。 通过阅读这本书,读者不仅可以理解Python中的面向对象编程基础,还能学习到如何在实际项目...

    Python面向对象1

    使用`abc`模块的`ABCMeta`类和`abstractmethod`装饰器可以创建抽象类,强制子类实现特定的方法。 多态(Polymorphism)允许不同类的对象使用相同的接口,但具体的行为因对象的类型而异。这可以通过方法重写实现,...

    Python核心编程 第二版

    2. **进阶篇**: 深入探讨高级主题,比如函数式编程、异常处理、装饰器、元类等。 3. **应用篇**: 探讨如何使用Python进行网络编程、GUI开发、数据库交互等方面的应用开发。 4. **实践篇**: 提供了一系列实际案例,...

    Python程序设计-3期(KC017) 第5章 Python面向对象.docx

    在Python中,可以使用`@classmethod`和`@staticmethod`装饰器来定义类方法和静态方法。 总的来说,Python的面向对象特性使得代码更加模块化、易于理解和维护。通过定义类,我们可以创建复用性强、结构清晰的代码...

    Python中类的创建和实例化操作示例

    2. **属性**:定义在类内部的数据成员。 3. **方法**:定义在类内部的行为或功能,用于操作类的属性。 #### 二、类的定义 Python中使用`class`关键字来定义一个类。类的定义可以包含类变量、实例变量、构造函数和...

    Python100经典练习题.docx

    - 方法定义在类内部,首字母小写,通过self参数引用对象自身。 - 继承(inheritance)允许创建子类,扩展父类功能。 - 多态(polymorphism)允许子类对象替换父类对象,调用相应方法。 9. **列表推导式和生成器*...

Global site tag (gtag.js) - Google Analytics