Size: a a a

2021 November 25

T

Tishka17 in Python
я с коллегой
источник

T

Tishka17 in Python
тут генератор
источник

ВЩ

Взщз Щщщхш in Python
ну, "тупл быстрее списка" странная фраза. у объектов нет скорости, только у операций
источник

nx

neumond x in Python
>>> timeit.timeit('list(i for i in range(100))')
3.81357197399484

Хм. Ну да, в компрехеншене магия
источник

T

Tishka17 in Python
в смысле, любые допустимые операции с ним чуточку быстрее
источник

ВЩ

Взщз Щщщхш in Python
len такой же должна быть
источник

T

Tishka17 in Python
не факт =D
источник

T

Tishka17 in Python
упс, при тестах oom словил
источник

ВЩ

Взщз Щщщхш in Python
ну, примерно одинаково
источник

nx

neumond x in Python
Потому что len хранится в ob_size что в list, что в tuple
источник

ВЩ

Взщз Щщщхш in Python
ну в общем да, там в обоих объектах для него не надо по указателю прыгать
источник

nx

neumond x in Python
Я до сих пор не понимаю какого чёрта компрехеншен быстрее.
источник

T

Tishka17 in Python
потому что не создается отдельный объект генератор
источник

ВЩ

Взщз Щщщхш in Python
tuple(genexpr) буквально создаёт генератор и прокидывает его в tuple
источник

ВЩ

Взщз Щщщхш in Python
Ты можешь подменить tuple в глобальном скоупе, поэтому не получится оптимизировать
источник

TB

Thomas Brown in Python
Задача следующая:
Есть система которая слушает команды в консоли к примеру. Пользователь вводит команду, она выполняет на основе ее функций.
Также система может обращаться к другим источникам и выполнять действия аля "ассистент" или "автоматизатор", называйте как хотите, это все равно привожу пример.
Необходимо расширять функционал без вмешательства пользователя. Написал пакет где слушатель, обработчик и модуль, залил системе, она проверяет на работоспособность и стандарты, проверяет на клоне системы с тестовыми данными, если все ок, у пользователя появляется новая команда или новый источник для обработки данных. Если не Ок пользователя ударяют током (шутка 😃)

Решение у меня следующее.
Есть два потока:
- канал связи (прием команд от пользователя)
- стартер слушателей

Канал связи я думаю всем понятно, обычный инпут и далее обработчик команд. Тут думаю все просто.

Стартер слушателей читает конфигурации системы, запускает в новые потоки слушателей с заданными параметрами (скорость обработки, вариативность и т.п.)

Слушатель в свою очередь обращается к источникам где получает данные и передает в обработчик типов. Здесь происходит сортировка данных между обработчиками. Обработчики химичат над данными и отправляют в модули, те в свою очередь совершают полезные надобности.

Когда прилетает новое расширение функционала, после его проверки, система распределяет по своим местам каждый элемент.
Listenets - Слушатель <class>
Handlers - Обработчики <class>
Modules - Модули <def>
TypeData.json <— DataType <str>

Далее, стоит задача разобраться в связях с этим новым функциями. Думаю решить так, перезаписать файлы, добавив в конце необходимые функции и импортировать зависимости с помощью меток и далее перезапустить потоки.

Как бы вы решили такую задачу? 🤔 Я понимаю, что тут по большей части относится к оптимизации архитектуры операционных систем, но я их не изучал, поэтому решаю как могу

Или вариант 2
Создать импорт импортов
т.е.
[imports.py]
from funct1 import *
from funct2 import *
...
from functN import *

В самом начале это будет все импортировано в главный стартер который запускает функции как пример, не знаю:
import imports

funStart()
funGet()
funTagil()

И новые функции будут добавлять в обработчик в конец файла строки новых функций
funNewFuct()

и  в импорты
from NewFuct import *

А далее снова перезапуск потока
источник

TB

Thomas Brown in Python
Если кому будет не лень читать это все, буду признателен за советы 😄😄😄
источник

ВЩ

Взщз Щщщхш in Python
можно в pastebin.com, пожалуйста? 👀
источник

ВЩ

Взщз Щщщхш in Python
хотя...
источник

ВЩ

Взщз Щщщхш in Python
вакансии и подлиннее бывают
источник