Python:是否可以在“with”语句中内联解压序列类型

Fak*_*ame 6 python python-3.x

有没有办法在 python 中的 with 语句中进行内联解包?

现在,我有一个自定义上下文管理器,它返回一个sqlalchemy row对象,以及session可能将其作为二元组删除所需的关联对象,并在上下文退出时处理必要的数据库操作:

with self.row_sess_context(dbid=relid) as tup:
    row, sess = tup

    ...[manipulation code]...
Run Code Online (Sandbox Code Playgroud)

现在,在我看来,能够做类似的事情会特别“Pythonic”:

    with self.row_sess_context(dbid=relid) as row, sess:

    ...[manipulation code]...
Run Code Online (Sandbox Code Playgroud)

特别是因为 python 已经支持大多数其他上下文中的序列解包(for、列表理解、正常赋值等...)。

尝试诸如尝试 put row, sessis invalid之类的事情 会混淆 sublime text 语法荧光笔,而且我显然不够聪明,无法理解这是否从正式语法定义中完全不可能。

有没有比手动解压元组更好的方法?

Fak*_*ame 6

呃,所以我被语法高亮阻碍了。

可以做:

with self.row_sess_context(dbid=relid) as (row, sess):
Run Code Online (Sandbox Code Playgroud)

但它破坏了本机 sublime-text python 突出显示,所以我认为它无效。

请参阅: https: //github.com/sublimehq/Packages/issues/1467

至少我从中得到了一份错误报告。