Python Flask 6.0.1 工厂函数
来源:互联网 发布:微电影制作软件 编辑:程序博客网 时间:2024/06/05 14:41
欢迎访问地平线上的一匹狼-Python Flask 6.0.1
开始大型网站架构的时候,有很多概念晦涩难懂,其中就有这个工厂函数.
以下是来自别人的博客: ...Clicke Here...
def maker(N): def action(X): return X ** N return action
这个函数就是一个典型的工厂函数
.
其中会牵扯到一个概念,延迟执行
.
我们可以看到,这个函数是有参数
的.
实例化对象:
f = maker(2)
然后我们在对象实例化后传入参数:
f(3)
结果会输出9.
每次maker()的时候都会生成一个新的实例化对象.
而用实例化对象传入参数返回的就是返回的调用函数返回的值
.
1、Python中的def语句是一个可执行语句——函数并不存在,直到Python运行了def后才存在。当Python运行到def语句时,将创建一个函数对象,并将其赋值给某一变量名,这个变量名就是函数名。2、当函数被调用时,其调用者停止运行直到这个函数完成了工作,之后函数将控制权返回调用者。函数通过return语句将计算得到的值传递给调用者,返回值成为函数调用的结果,即return将一个函数结果发送给调用者。3、参数通过赋值传递给了函数。改变参数名并不会改变调用者中的变量名,但是改变传递的可变参数可以改变调用者共享的那个对象,即函数是通过赋值(对象引用)传递的。 4、函数maker里面嵌套了一个函数action,首先传给maker函数一个参数N,这个参数传给了action函数,action函数获得具体的参数形成具体的函数,此时,action(X)函数已经具体化了,也就是def action(X):return X**2,然后将action(X)返回给顶层,并赋值给f,即f是action(X),然后再传递参数到f中,也就是传给了action(X)。
在书中的:
def create_app(config_name): app=Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) bootstrap.init_app(app) mail.init_app(app) moment.init_app(app) db.init_app(app) from .main import main as main_blueprint app.register_blueprint(main_blueprint) return app
即为工厂函数,接受的参数是Config_name.
其返回的是实例化后的app对象,即可以对每种单元测试进行覆盖,而并非是对每种测试都重新运行一遍.
想对哪种单元测试进行测试时,只需调用其(工厂函数)返回的app实例化对象即可.
以下是我自己写的工厂函数单元测试
样例:
class mq(object): def __init__(self,string_c): self.config_str=string_c def print_str(self): print(self.config_str)def crete_factory_method(config_str): tp=mq(config_str) return tpfactory_test = crete_factory_method('这是第一个单元测试')factory_test2 = crete_factory_method('这是第二个单元测试')factory_test.print_str()#Out[]:这是第一个单元测试factory_test2.print_str()#Out[]:这是第二个单元测试
这样就明白了吧:)
阅读全文
0 0
- Python Flask 6.0.1 工厂函数
- flask学习笔记(工厂函数)
- flask 应用程序的工厂函数
- 理解 Flask中的 工厂函数
- Python之工厂函数
- Python工厂函数
- 【Python】工厂函数
- python中的工厂函数
- python 工厂函数
- python工厂函数
- Python 工厂函数
- Python中的工厂函数
- flask(python)
- Python Flask
- python+flask
- python flask
- 从flask学python---从flask v0.1开始---01
- python(第一天): 工厂函数
- 哈希值和地址值得区别
- Java集合面试问题
- C语言——【复习提纲】1.数据类型
- selenium自动化学习之弹出框
- 基于UDP的socket编程
- Python Flask 6.0.1 工厂函数
- 求出不超过n的幸运数
- Python Flask 6.0.2 相对路径
- ubuntu14.04+opencv 3.1+contrib安装及测试
- HDU5044【LCA+差分】
- 笔试_oracle(8)
- python3中使用map,reduce和filter
- Python Flask(六) 大型网站架构
- win7如何设置电脑定时关机