[Python] with... as...

Yuri yurj a alfa.it
Gio 18 Mar 2021 08:55:48 CET


with su una risorsa chiama __enter__ all'inizio e __exit__ su questa 
risorsa quando si esce dal blocco.

 >>> a = 1
 >>> with a:
...  printa(a)
...
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
AttributeError: __enter__
 >>>

il risultato di open torna un oggetto che supporta __enter__ e __exit__

Questo meccanismo si può generalizzare tramite i contextmanager:

https://book.pythontips.com/en/latest/context_managers.html


Il 17/03/21 22:33, Franky Bonanno ha scritto:
> with vedilo come. qualcosa che ti fa risparmiare del tempo, ad esempio 
> se apri un file in scrittura e dimentichi di chiuderlo, hai buone 
> probabilità di corromperlo. Con with, una volta finite le operazioni 
> sull'ipotetico file, questi viene chiuso automaticamente.
> Per quanto riguarda as, oltre quello che asseriva Tex, immagina una 
> cosa del genere: with open("supercalifragilistichespiralidoso.txt) as sp.
> sp.readlines.
>
> Il mer 17 mar 2021, 21:50 Marco Beri <marcoberi a gmail.com 
> <mailto:marcoberi a gmail.com>> ha scritto:
>
>     On Wed, 17 Mar 2021, 21:41 Vittorio Arturi,
>     <vittorio.arturi a gmail.com <mailto:vittorio.arturi a gmail.com>> wrote:
>
>         "As" dovrebbe essere (se non sbaglio) un alias: converti il
>         nome di una variabile o una libreria in un nome piú piccolo,
>         sintatticamente piú memorizzabile e piú "usabile" nel tuo script.
>         Scrivo col beneficio del dubbio essendo un neofita assoluto.
>
>
>     Non solo per comodità.
>
>     Ammettiamo che devi importare due moduli utils, uno dalla libreria
>     ceppa e l'altro dalla libreria dimao. Come fai?
>
>     from ceppa import utils as ceppa_utils
>     from dimao import utils as dimao_utils
>
>     Ciao.
>     Marco.
>
>     _______________________________________________
>     Python mailing list
>     Python a lists.python.it <mailto:Python a lists.python.it>
>     https://lists.python.it/mailman/listinfo/python
>     <https://lists.python.it/mailman/listinfo/python>
>
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> https://lists.python.it/mailman/listinfo/python
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20210318/4d898d6c/attachment-0001.html>


Maggiori informazioni sulla lista Python