On Wed, Jul 5, 2017 at 11:34 AM, Chris Barker <chris.bar...@noaa.gov> wrote: > On Sun, Jun 25, 2017 at 6:20 PM, Mikhail V <mikhail...@gmail.com> wrote: >> >> And it reminded me times starting with Python and wondering >> why I can't simply write something like: >> >> def move(x,y): >> x = x + 10 >> y = y + 20 >> move(x,y) >> >> Instead of this: >> >> def move(x,y): >> x1 = x + 10 >> y1 = y + 20 >> return x1,y1 >> x,y = move(x,y) > > > you CAN do that, if x and y are mutable types. > > I've found that when folk want this behavior (often called "pass by > reference" or something), what they really want in a mutable number. And you > can make one of those if you like -- here's a minimal one that can be used > as a counter:
[veering off-topic] I've implemented mutable integers as part of the gmpy2 library. The eXperimental MPZ (xmpz) type breaks many of the normal rules. Mutable >>> a=gmpy2.xmpz(1) >>> b=a >>> a+=1 >>> a xmpz(2) >>> b xmpz(2) Direct access to individual bits >>> a=gmpy2.xmpz(123) >>> a[0] 1 >>> a[1] 1 >>> a[0]=0 >>> a xmpz(122) Iterating over bits >>> a=gmpy2.xmpz(104) >>> bin(a) '0b1101000' >>> list(a.iter_bits()) [False, False, False, True, False, True, True] >>> list(a.iter_clear()) [0, 1, 2, 4] >>> list(a.iter_set()) [3, 5, 6] I'm not sure how useful it really is but it was fun to write. :) casevh _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/