from lazy_object_proxy import Proxy
value = Proxy(lambda: expr())
# If this could be written in a more concise form. e.g.:
value = `expr()`
# then it would be worthwhile constructing and making use of VB-like expressions
def IF(condition, when_true, when_false):
if condition:
return when_true
else:
return when_false
def expr1():
print('__expr1__')
return 1
def expr2():
print('__expr2__')
return 2
result = IF(True, `expr1()`, `expr2()`)
# Expressions would only be evaluated when certain usage takes place
# This works fairly nicely, but inconvenience of it is a dealbreaker (to be used for such cases)
result = IF(True, Proxy(lambda: expr1()), Proxy(lambda: expr2()))
# Not yet evaluated
print(result + 1)
# Now it is
def IF(condition, when_true, when_false):
if condition:
return ensure_eval(when_true)
else:
return ensure_eval(when_false)
On 20 Jul 2023, at 22:51, Random832 <random832@fastmail.com> wrote:On Mon, Jul 17, 2023, at 16:41, Dom Grigonis wrote:Would be interesting to see if my preference is an outlier or not really.
I think this is a false dichotomy. We should consider VB-like conditional expressions if(condition, when_true, when_false) as well.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-leave@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/FZBHN6DVTH2IW4OZH4R36EYZWRRMEYJL/
Code of Conduct: http://python.org/psf/codeofconduct/