โปรดทราบว่าถ้าคุณแบ่งตัวแปรออกเป็นบรรทัดคุณต้องใช้แบ็กสแลชเพื่อตัดบรรทัดใหม่
with A() as a, \
B() as b, \
C() as c:
doSomething(a,b,c)
วงเล็บไม่ทำงานเนื่องจาก Python สร้าง tuple แทน
with (A(),
B(),
C()):
doSomething(a,b,c)
เนื่องจากสิ่งอันดับขาด__enter__คุณสมบัติคุณจะได้รับข้อผิดพลาด (ไม่ได้อธิบายและไม่ได้ระบุประเภทของคลาส):
AttributeError: __enter__
ถ้าคุณพยายามที่จะใช้asภายในวงเล็บ, Python จับข้อผิดพลาดในเวลาในการแยกวิเคราะห์:
with (A() as a,
B() as b,
C() as c):
doSomething(a,b,c)
SyntaxError: ไวยากรณ์ไม่ถูกต้อง
https://bugs.python.org/issue12782ดูเหมือนว่าจะเกี่ยวข้องกับปัญหานี้