[Python] Sintassi sconosciuta...
Marco Beri
marcoberi a gmail.com
Mar 16 Ott 2018 14:19:29 CEST
On Tue, Oct 16, 2018 at 1:19 PM Luca <luca800 a gmail.com> wrote:
> Il giorno mar 16 ott 2018 alle ore 13:06 Alessandro Dentella <
> sandro a e-den.it> ha scritto:
>
>> [tmp_loc] = glob.glob(os.path.join(tmp_dest, '*'))
>>
>> che trovate usata qui:
>>
>>
>> https://github.com/buildout/buildout/blob/master/src/zc/buildout/easy_install.py#L1740
>>
>> Che cosa fa? che senso ha usarla quando mi vengono in mente vari altri
>>
>
> Boh, anche io penso che sia un modo diverso di scrivere
>
> tmp_loc = glob.glob(os.path.join(tmp_dest, '*'))[0]
>
Eh, in realtà non è esattamente lo stesso:
>>> def ret(x):
... return x
...
>>> [a] = ret([1])
>>> a
1
>>> a = ret([1])[0]
>>> a
1
Ma:
>>> [a] = ret([1, 2])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
>>> a = ret([1, 2])[0]
>>> a
1
loaddove è sicuro di avere un solo elemento nella lista.
>
Appunto: il secondo modo solleva l'eccezione ove questo non accada, l'altro
no.
C'è da dire che a me [tmp_loc] = ... fa schifo come sintassi ma magari sono
solo io ;-)
Ciao.
Marco.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20181016/2dbfca37/attachment.html>
Maggiori informazioni sulla lista
Python