Perhatikan bahwa jika Anda membagi variabel menjadi beberapa baris, Anda harus menggunakan garis miring terbalik untuk membungkus baris baru.
with A() as a, \
B() as b, \
C() as c:
doSomething(a,b,c)
Kurung tidak berfungsi, karena Python malah membuat tuple.
with (A(),
B(),
C()):
doSomething(a,b,c)
Karena tupel tidak memiliki __enter__
atribut, Anda mendapatkan kesalahan (tidak deskriptif dan tidak mengidentifikasi tipe kelas):
AttributeError: __enter__
Jika Anda mencoba menggunakan as
dalam tanda kurung, Python menangkap kesalahan pada saat parse:
with (A() as a,
B() as b,
C() as c):
doSomething(a,b,c)
SyntaxError: sintaks tidak valid
https://bugs.python.org/issue12782 tampaknya terkait dengan masalah ini.