标签:函数返回值 elf 方法 cal 源码 配置 return def 加载
1.flask的基本使用
- 配置
- 路由
- 视图
- 请求与响应相关
- 模板
2.flask基于装饰器实现的路由
- 基本操作
- functools
- 带参数的装饰器
- 源码剖析
3.flask-基于源码剖析session&特殊装饰器原理
1.装饰器原理
def wapper(func):
def inner(*args,**kwargs):
print("执行装饰器逻辑")
return func(*args,**kwargs)
return inner
"""
在程序执行从上到下加载,还未执行的时候 先执行如下两个步骤
1. 立即执行wapper函数,并将下面装饰的函数当做参数传递
2. 将wapper函数返回值获取,在index赋值
index = inner函数
"""
@wapper
def index():
print(‘函数内容‘)
# 实际执行的 inner函数,inner函数内部调用原函数
index()
2.functools
import functools
def wapper(func):
@functools.wraps(func)
def inner(*args,**kwargs):
return func(*args,**kwargs)
return inner
@wapper
def index():
print(‘index‘)
@wapper
def order():
print("order")
"""
默认不加functools会直接返回当前函数装饰器里inner的函数名字
"""
print(index.__name__)
print(order.__name__)
"""
返回值
index
order
"""
3.面向对象封装
"""
面向对象封装
"""
#将一些变量封装到一个类里进行统一调用
class Foo(object):
def __init__(self,age,name):
self.age = age
self.name = name
def get_info(self):
return self.name,self.age
def __call__(self, *args, **kwargs):
return self.name
class Bar(object):
def __init__(self,counter):
self.counter = counter
self.obj = Foo(‘18‘,‘guest‘) #这个也算是面向对象的组合,将用户封装到一个类里
b1 = Bar(1)
print(b1.obj.get_info())
print(b1.obj()) #对象加()执行对象所在类的__call__方法
标签:函数返回值 elf 方法 cal 源码 配置 return def 加载
原文地址:https://www.cnblogs.com/liujiliang/p/8854932.html