有没有办法在 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 会混淆 sublime text 语法荧光笔,而且我显然不够聪明,无法理解这是否从正式语法定义中完全不可能。row, sessis invalid之类的事情
有没有比手动解压元组更好的方法?
呃,所以我被语法高亮阻碍了。
你可以做:
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
至少我从中得到了一份错误报告。
| 归档时间: |
|
| 查看次数: |
2200 次 |
| 最近记录: |