I would like to access a Python function's return value multiple times without repeating the computationally expensive parts.
Example:
def expensive_function():
print('do expensive work')
return 'output of expensive work'
def get_output_twice():
output = expensive_function() # This does the expensive work
print(output) # This does not do expensive work
print(output) # This does not do expensive work
def get_output_again():
output = expensive_function() # This does the expensive work again
print(output) # This does not do expensive work
get_output_twice()
print('\n')
get_output_again()
This produces:
do expensive work
output of expensive work
output of expensive work
do expensive work
output of expensive work
This example demonstrates:
- Assigning the return value to a variable allows that variable to be accessed multiple times without calling the function again, as demonstrated in
get_output_twice()
. - Assigning the return value to a variable in another function forces the expensive function to be called again.
Is it possible to access a function's return value via calls from multiple other functions without repeating expensive work and without the use of global
?