Скажем, я должен был создать класс Python, в котором один из выходов функции необходим для нескольких других функций, но это очень медленный процесс. Есть ли способ сделать этот вывод атрибутом или глобальной переменной для использования остальными функциями, но не нужно перезапускать медленную функцию?
Например, вот класс, в котором медленная функция вызывается следующими двумя функциями:
класс test_class:
def __init__(self, A):
self.a = A
def some_function(self):
""" Function to show that the slow function feeds of another function first """
a = self.a
a*=2
return a
def slow_function(self):
""" Imagine this is a very slow function """
test_value = self.some_function()
test_value*=2
return test_value
def using_slow_function(self):
""" Calls the very slow function and then operates on the output """
b = self.slow_function()
b *=2
return b
def using_slow_function_again(self):
""" Calls the very slow function and then operates on the output """
c = self.slow_function()
c *= 2
return c
Итак, ясно, что если бы slow_function
был, скажем, открытием файла или медленным процессом свертки, то многократный запуск его будет большой потерей времени.
Если вместо этого вывод slow_function
можно превратить в атрибут, то это поможет, но я не уверен, как сделать это на полпути через класс.
Любая помощь будет принята с благодарностью!