我正在阅读一些Werkzeug的资料,无意中发现了这个金块包装纸模块。你知道吗
def _run_wsgi_app(*args):
"""This function replaces itself to ensure that the test module is not
imported unless required. DO NOT USE!
"""
global _run_wsgi_app
from werkzeug.test import run_wsgi_app as _run_wsgi_app
return _run_wsgi_app(*args)
这样做有什么好处?这个定义和没有global _run_wsgi_app
语句的定义有什么区别?你知道吗
如果不使用
global
语句,则将创建一个名为_run_wsgi_app
的局部变量,然后将使用它,但全局命名空间中不会有任何更改。使用global _run_wsgi_app
可以确保将全局名称重新绑定到新函数。你知道吗记住
global
的基本用法:您的示例是相同的,但不是直接用
name = ...
绑定名称,而是用from ... import ... as name
绑定名称。你知道吗另一种不用
global
重新定义自身的方法是使用包含它的module对象。你知道吗相关问题 更多 >
编程相关推荐