Marc Huffnagle wrote:
Steve Holden wrote:

 >>> a,b,c = 1.1, 2.2, 3.3
 >>> a,b,c = map(int, (a,b,c))
 >>> a,b,c
(1, 2, 3)
 >>> a,b,c = [int(x) for x in (a,b,c)]
 >>> a,b,c
(1, 2, 3)

regards
 Steve

Thanks ... so there's no way to pass an actual variable into a list mapping, instead of its value? I guess I'm thinking of something the equivalent of call by reference.

No, not really. You could do something like:

py> a, b, c = 1.1, 2.2, 3.3
py> mod = __import__(__name__)
py> for name in ('a', 'b', 'c'):
...     setattr(mod, name, int(getattr(mod, name)))
...
py> a, b, c
(1, 2, 3)

where you use the namespace in which the name resides (the module), but I'd probably advise against it... I would suggest doing something like:

py> myvars = dict(a=1.1, b=2.2, c=3.3)
py> for key, value in myvars.iteritems():
...     myvars[key] = int(value)
...
py> myvars
{'a': 1, 'c': 3, 'b': 2}

If you want to pass around variables, it's generally better to put them in a dict, list, class instance or some other sort of container then mess around with them at the module level...

(another) STeVe
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to