Steven D'Aprano <st...@pearwood.info> writes: > I have a function which is intended for use at the interactive > interpreter, but may sometimes be used non-interactively. I wish to > change it's output depending on the context of how it is being called. > […] > > x = func() > assert x == 999 > > L = [1, 2, func(), 4] > assert L[2] == 999 > > func() > # interactive interpreter prints "Awesome" > > Is such a thing possible, and if so, how would I do it?
That makes my skin creep. In the name of all the tea I've sacrificed to Python over the years, I pray this isn't possible. > If I did this thing, would people follow me down the street booing and > jeering and throwing things at me? First thing in the morning I will purchase a head of cabbage and store it in a warm place to make it rot, on the off chance you find some obscure way to achieve your benighted goal, just so I can be first in line to throw it as you pass. If ever I have to worry that some arbitrary Python function, unbenownst to me, might have a branch that will make it behave differently depending on *whether I bind a reference to its return value*, then I'll know you are sent to us as an evil spirit to make all software suck. -- \ “Nothing exists except atoms and empty space; everything else | `\ is opinion.” —Democritus | _o__) | Ben Finney -- https://mail.python.org/mailman/listinfo/python-list