[Python] C'e' un modo per abbreviare questa sintassi?
Stefano Dal Pra
s.dalpra a gmail.com
Mer 7 Nov 2012 14:29:22 CET
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)
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