[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