Найти - Пользователи
Полная версия: запуск функции из переменной
Начало » Python для новичков » запуск функции из переменной
1 2 3 4 5
Genabox
целью это го всего топика и было запустить функцию из переменной global_command
она все время динамическая потому что…..
Genabox
если интересно то концепт программы тут
https://www.youtube.com/watch?v=MXdsPKZyZ48
Genabox
 'global_command': voice_commands.global_command

должно быть как то так
я уже сомниваюсь в правильности использования словаря в данном вопросе

в global_command' выбирается из базы sql название функции которую нужно запустить
и она находится в модуле voice_commands
вот и все……
Genabox
хм у меня получилось,,, не так как хотел но все же

main.py
 global_command = 'start-xx'
     def run_programm():
        global global_command
        commands = {
        global_command: voice_commands.start
        }
        commands[global_command](global_command)
    run_programm()
voice_commands.py
 def start(global_command):
	print('TEST*********!' )
	if global_command == 'start-xx':
		error_request()
def error_request():
		print('COMMAND RUN: Ваша команда выполнена быть не может')	
	

и того если если global_command содержит error_request то запускается error_request из voice_commands
или тут
если start-xx то тоже error_request
вообщем что я и пытался добится из начально
Genabox
xam1816
Genabox
если интересно то концепт программы тут
у него в коде нет не одного global
у тебя не возникло вопроса, как у него так складно получилось?
а к функциям он обращается через
 exec()
решение такое же исключительное как и использование global

Genabox
и сам подумай 100 вопросов - 100 функций
за заколупаюсь это все писать

так можно писать функции с декоратором
  
commands = {}
 
def cmd(func):
    commands[func.__name__] = func
    return func
 
@cmd
def voice():
    print('la-la-la')
 
commands['voice']()

а если уже есть 100 функций,то взять этот файл.py с функциями и спарсить все имена в словарь ну или скриптом подставить @cmd как в примере выше
Genabox
да получилось у него очень складно я тоже удивился этому
но когда ты работаешь с его кодом и привыкаешь к нему то понимаешь что он делал обучающее видео которое короткое по коду для удобства понимания зрителя

global я ввел потому что у меня там не только команды еще есть префексы таблиц ответы и вопросы как потоковые текстового чата (в дискорде)

exec() - да как то мимо прошел….

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

я пишу название функции в базу sql как глобальную команду
- к этому вопрос-ответ
а в исходниках только сама функция по названию
и все в одну строку sql, а сам код в файл voice_commands

вообще интересная тема. можно умный дом подключить, и потом еще хочу gpt chat …….
Genabox
у меня уже готов пак звуков сделаный в FL Studio
такого плана
вообще крышесносная вещ выходит
Genabox
а вот gtp chat если не вкурсе
https://www.youtube.com/watch?v=Ni1trFsCQeQ
Genabox
еще подумываю сразу 3 бота прописать на 1 прогу
тоесть 1 умеет время , стихи погоду знакомится и представлять остальных - работать с mysql
второй мне по работе всякую тех инфу выдавать- работать с mysql и API
и третий уже gtp chat, тоесть у каждого свое имя и все это одним голосовым каналом
как ты заметил с распознаванием текста проблем нет, я пробовал новости спарсить прямо со стрима на ютубе в онлайн, никогда не думал что люди так много текста разговаривают, если нет звуковой подложи то выдает 99,5% правильного текста и это еще на телефонном движке на 40 мег, еще есть на 2,5 гб но он долго грузится и в оперативке 10 ка висит
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB