Python中能否将多个with语句编写在同一行?
Python中多个with语句的同行写法
可以将多个with语句写在同一行,但不能用||这种语法——Python里没有||作为语句分隔符的用法,这样写会直接触发语法错误。
针对你给出的场景,合法的同行写法是用分号分隔两个完整的with语句:
with suppress(Exception): del a; with suppress(Exception): del b
不过要注意,这种写法会大幅降低代码可读性,日常开发里更推荐保持每行一个with语句的格式,除非是非常简短且不会造成理解障碍的场景。
另外补充:如果是不同的上下文管理器,Python支持在一个with语句中用逗号同时声明多个(比如with open('a.txt') as f1, open('b.txt') as f2:),但你的场景是每个del操作都需要单独的suppress上下文,所以还是需要分开的with语句。
内容的提问来源于stack exchange,提问作者user40780
相关产品推荐
相关产品推荐

