“as”语句在python中是什么意思?

2024-06-08 11:47:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始学习Flask框架,想知道“as”语句有什么作用?它与“with”语句一起使用。在

示例如下:

def init_db():
with closing (connect_db()) as db:
    with app.open_resource('schema.sql', mode='r') as f:
        db.cursor().executescript(f.read())
    db.commit

Tags: 框架appflask示例dbinitschemadef
1条回答
网友
1楼 · 发布于 2024-06-08 11:47:05

关键字as用于将子句添加到几个不同的语句(例如,^{});没有“as语句”。在

with语句中,这意味着with上下文的值被分配给该变量。精确的解释在The ^{} statementWith Statement Context Managers,和{a4};PEP 343下的文档给出了一个更具可读性的解释(尽管它也有点过时)。在


在简单的情况下,当一个对象充当它自己的上下文管理器(如文件)或decimal.localcontext时,对象被分配给变量。这里,fopen('spam')返回的文件:

with open('spam') as f:

在稍微复杂的情况下,上下文管理器提供一些分配给变量的其他对象。在closing(foo)的情况下,对象是它首先给定的foo。所以在这里,g和{}是一样的,即使closing(f)不是同一件事:

^{pr2}$

有些上下文管理器根本不提供任何对象。在这种情况下,as f将把f分配给None,而你通常没有任何好的理由使用它。因此,as子句是可选的。例如,使用threading.Lock

with my_lock:

如果您从头开始构建上下文管理器,那么提供绑定到as目标的对象(无论是self)的方法是从__enter__方法返回它。或者,如果您在生成器周围使用@contextmanager修饰符来构建它们,那么可以通过yield来实现。在

相关问题 更多 >