@happygameslime

Упаковка функции в строку, и обратно....?

хочу передать функцию, но способ передачи подразумевает только строковые значения(callback в TeleBot)

globals() - если это метод, то надо передавать пару ключ к объекту - ключ к нужному методу в __dict__ этого объекта, а если не метод..... можно конечно создать спец ссылку curr_func для каждого объекта, который в этом нуждается, и передавать только ключ к объекту, но некрасиво

curr_func в globals() - не подходит, тк предполагается многопользовательность

func_dct - создавать к примеру uuid ключ на lambda-функцию, а потом постоянно удалять - тоже некрасиво, + постоянное чтение словаря

можно ли обойтись без контейнеров, чтобы прямо из ̶к̶о̶р̶о̶б̶к̶и̶ строки?
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
>>> def a():
...     print(True)
...
>>> def b(func):
...     funcs = {'a': a()}
...     funcs[func]
...
>>> b('a')
True
>>>

Вы не потеряете производительность при вызове функции из словаря и на глаз вы точно не сможете определить где прямой вызов, а где из словаря.
Уменьшать кол-во чтений хорошо тогда, когда их десятки, а то и сотни тысяч - в остальных случаях просто забейте. Когда у вас будет достаточно опыта и знаний вы сами будете прекрасно понимать где, как и что можно оптимизировать. До этого - просто пишите код и пробуйте. Любое решение хорошо, если оно работает так, как задумывалось, остальное - фантики.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы