ben+python at benfinney.id.au
Thu Sep 10 20:12:53 CEST 2015
Steven D'Aprano <steve at 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 == 999
> # 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 |
More information about the Python-list