Re: [Python-ideas] [off topic] Allow function to return multiple values

On Wed, Jul 5, 2017 at 11:34 AM, Chris Barker <chris.barker@noaa.gov> wrote:
On Sun, Jun 25, 2017 at 6:20 PM, Mikhail V <mikhailwas@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

On Wed, Jul 5, 2017 at 12:48 PM, Case Van Horsen <casevh@gmail.com> wrote:
[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.
looks like you've added a lot more than mutability :-)
I'm not sure how useful it really is
Exactly -- when this comes up, I tend to think "I should make a mutable integer and put it on PyPi" -- but then I realize that the use case at hand is better handled another way. I have yet to encounter a use case where is seems like the best way to handle it. IT's mostly people trying to write C# (or another language) in Python :-) But a good exercise in writing code to emulate types in python.... -CHB -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chris.Barker@noaa.gov
participants (2)
-
Case Van Horsen
-
Chris Barker