装饰器 decorators(专业提高篇)
什么是装饰器
1.装饰器是一个函数,主要作用是用来包装另一个函数或
类(后面才讲)
2.包装的目的是在不改变原函数名(或类名) 的情况下改变
或添加被包装对象的行为
函数装饰器
是指装饰器是一个函数,传入的是一个函数,返回的也是一个
函数
语法:
def 装饰器函数名(参数):
语句块
return 函数对象
@装饰器函数名<换行>
def 函数名(形参列表):
语句块
函数的文档字符串
函数内第一次末赋值给任何变量的字符串是此函数的文档字符串
语法:
def 函数名(参数列表):
'函数的文档字符串'
语句块
说明:
文档字符串通常用来说明本函数的功能的使用方法
函数的文档字符串绑定在函数对象的 __doc__ 属性上
***函数的 __doc__ 属性***
__doc__属性用于绑定函数的文档字符串
函数定义语句的完整的语法:
[@装饰器名1]
[@装饰器名2]
...
def 函数名([位置形参], [*元组形参], [命名关键字形参]
,[**字典形参]):
'文档字符串'
语句块
模块 Module
什么是模块
模块是一个包含有一系列数的数据,函数,类等组成的程序组
模块是一个文件,模块文件通常以.py结尾
作用:
1. 让一些相关的数据,函数,类等有逻辑的组织在一起,使
逻辑结束更加清查晰
2. 模块中的数据,函数和类等可提供给其它模块或程序调用
模块的分类:
1. 内置模块,在解析器的内部可以直接使用
2. 标准库模块,安装python时已安装,且可直接使用
3. 第三方模块(通常为开源), 需要自己安装
$ pip3 install 模块名
4. 用户自己编写的模块(可以作为其它人的第三方模块)
模块的导入 import 语句
import 语句
语法:
import 模块名1 [as 模块新名1],模块名2 [as 新名2]
作用:
将某模块整体导入到当前模块
示例:
import math
import sys, os
用法:
模块名.属性名
math.factorial(5)
print(math.pi)
dir(obj) 函数,返回模块的所有属性的字符串列表
help(obj) 函数,可以查看模块相关的文档字符串
from import 语句
语法:
from 模块名 import 模块属性名1 [as 属性新名1], \
模块属性名2 [as 属性新名2], ....
作用:
将某模块内的一个或多个属性导入到当前模块的作用域
示例:
from math import sin,cos,tan
from math import pi
from math import factorial as fac
print(sin(pi/2)*fac(5)
from import * 语句
语法:
from 模块名 import *
作用:
将某模块的所有属性导入到当前模块
示例:
from math import *
print(factorial(5))
print(sin(pi / 2))
dir([对象]) 返回一个字符串列表
dir函数的作用:
如果没有参数调用,则返回当前作用域内所有变量的列表
如果给定一个对象作为参数,则返回这个对象所有变量的列表
对于一个模块,返回这个模块的全部变量(属性)
对于一个类对象,返回类对象的所有变量,并递归基类对
象的所有变量
对于其它对象,返回所有变量,类变量和基类变量