[Python] C'e' un modo per abbreviare questa sintassi?
Stefano Dal Pra
s.dalpra a gmail.com
Mer 7 Nov 2012 14:34:47 CET
On Wed, Nov 7, 2012 at 2:29 PM, Stefano Dal Pra <s.dalpra a gmail.com> wrote:
> 2012/11/7 orsomannaro <orsomannaro a gmail.com>:
>> Il 07/11/2012 09:02, enrico franchi ha scritto:
>>
>>
>>> Non ultima, la cara vecchia scomposizione in funzioni.
>>
>>
>>
>> Infatti per ora ho risolto cosi':
>>
>>
>> def str2int(str): return int(str) if str.isdigit() else None
>>
>>
>> numero1 = str2int(get_num(...))
>> numero2 = str2int(get_num(...))
>> numero3 = str2int(get_num(...))
>> ...
>> if numero1 and numero2 and numero3 and ...:
>> my_obj.codice1 = numero1
>> my_obj.codice2 = numero2
>> my_obj.codice3 = numero3
>> ...
>>
>
> Ciao, ti propongo questa variante:
>
> str2int = lambda str : str.isdigit() and int(str)
Scusa, meglio scriverla cosi':
str2int = lambda s : s.isdigit() and int(s)
dato che str e' una keyword...
> n = 0
> while True:
> n += 1
> k = str2int(get_num)
> if not k: break
> setattr(my_obj, 'codice%s'%n, k)
>
> esempio svelto di setattr() :
>>>> class p:
> ... pass
> ...
>>>> Q = p()
>>>> setattr(p,'attr1',0)
>>>> Q.attr1
> 0
>
> Ciao
>
>
>> _______________________________________________
>> Python mailing list
>> Python a lists.python.it
>> http://lists.python.it/mailman/listinfo/python
Maggiori informazioni sulla lista
Python