170 похожих чатов

У нас есть функция f(x), в которой вызываается некоторая другая

функция
def f(x):
с = some()
function(c)

но есть нюанс Эту функцию some вызывают еще раз в мейне. И выходит мы два раза вызываем одно и то же, что пгнимжает производительность
def main():
f(x)
r = some()
func(r)….

с таким же успехои можно запихнкть весь код функции f в мейн, и сделать так, чтоб значниие some() считалось лишь раз ,но тогда у нас функция будет загроможденная, что с этим можно сделать?

16 ответов

6 просмотров

1. заменить функцию на объект, заюзать везде Dependency Injection 2. в объекте сделать кэширование. Или вокруг него декоратором (паттер, а не как Денис сказал)

Ну тот случай когда не особо понятно почему функция f эту функцию some не принимает в аргументах - тогда имхо было бы сильно проще)

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
1. заменить функцию на объект, заюзать везде Depen...

а как заменить если это все методы класса

Dmitriy-Тiutiunnyk Автор вопроса
Владимир
Ну тот случай когда не особо понятно почему функци...

потому что эта функуия вообще не зависит от нее, это внутрення логика, парамеетризация будет лишняя

Dmitriy-Тiutiunnyk Автор вопроса
Владимир
Не зависит, но вызывает!)

оно зависит от датакласса ,что мы передаем и аргумент что мы передаем в яункцию сам тоже в этом датаклассе

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
у тебя есть dependency injection?

модное слово которое никто не понимает

Dmitriy Тiutiunnyk
модное слово которое никто не понимает

Никто — включая твоего тимлида, или у него есть представление?

Иван Балакин
Никто — включая твоего тимлида, или у него есть пр...

Ну там бы был какой нибудь особоый диай на ямлах...

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
настолько всё плохо?

я читал так и не смог понять, что-то сложная вещь

Dmitriy Тiutiunnyk
я читал так и не смог понять, что-то сложная вещь

https://itnext.io/dependency-injection-in-python-a1e56ab8bdd0 - почитай ДО раздела Implementing Dependency Injection in Python (далльше начинается херня)

Похожие вопросы

Обсуждают сегодня

Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Есть тут те у кого дети есть + 2 работы + в зал ходят + в семейной жизни все хорошо?
Abdul-Aziz M.
13
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
кто шарит: mattermost отслеживает что ты на пк запускаешь?
Valentin
13
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
Всем привет! Стоит задачка, выбрать из выпадающего списка конкретный цвет. Пока реализовал через активацию контрола списка и выбора несколькими нажатиями стрелки вправо до нуж...
Роман.С
9
Карта сайта