装饰器与反射

Posted on 2019-11-11 19:56  Max404  阅读(102)  评论(0编辑  收藏  举报
### 装饰器(decorator)

```
定义:装饰器用于拓展原来函数功能的一种语法,返回新函数替换旧函数
优点:在不更改原函数代码的前提下 给函数拓展新的功能
```

### 方法的分类

```
普通方法:  没有任何参数传递,只能类调用
绑定方法:  把默认传参的方法叫做绑定方法,绑定到对象(默认传对象),绑定到类(默认传类)
非绑定方法:静态方法 (无需传任何参数,对象和类都能调用)
```

### property

```
用property类装饰器,修饰的方法,变为描述符
效果:把类中方法变为属性使用,用来控制描述符的获取,设置,删除
```

### 与类相关的魔术属性

```
# __dict__ 获取对象或类的内部成员结构
# __doc__  获取对象或类的内部文档
# __name__ 获取类名函数名
# __class__ 获取当前对象所属的类
# __bases__ 获取一个类直接继承的所有父类,返回元组
```

### 反射

```
# 概念:通过字符串去操作类对象 或者 模块中的属性方法
# (1)类中的反射
#hasattr() 检测对象/类是否有指定的成员
#getattr() 获取对象/类成员的值
#setattr() 设置对象/类成员的值
#delattr() 删除对象/类成员的值 

# (2)模块的反射
sys.modules 返回一个系统字典,字典的键是加载的所有模块

```