Найти - Пользователи
Полная версия: запуск функции из переменной
Начало » Python для новичков » запуск функции из переменной
1 2 3 4 5
Genabox
     def run_programm():
        global global_command
        b = str('voice_commands.' + global_command)
        commands = {
        global_command: b,
        }
        
        commands[global_command]()
 
    run_programm()
Traceback (most recent call last):
File “d:\discord\sql\sqlquerty.py”, line 411, in <module>
DATABASEASK()
File “d:\discord\sql\sqlquerty.py”, line 388, in DATABASEASK
run_programm()
File “d:\discord\sql\sqlquerty.py”, line 386, in run_programm
commands()
TypeError: ‘str’ object is not callable
(discord) PS D:\discord>
Genabox
     def run_programm():
        global global_command
        b = 'voice_commands.' + global_command
        commands = {
        global_command: b,
        }
        print(commands)
        commands[global_command]()
 
    run_programm()
{'start': ‘voice_commands.start’}
Traceback (most recent call last):
File “d:\discord\sql\sqlquerty.py”, line 411, in <module>
DATABASEASK()
File “d:\discord\sql\sqlquerty.py”, line 388, in DATABASEASK
run_programm()
File “d:\discord\sql\sqlquerty.py”, line 386, in run_programm
commands()
TypeError: ‘str’ object is not callable
(discord) PS D:\discord>

ну если так то он ключ в стринг лепит
Genabox
если записать global_command в ключ словаря то это именно то что и нужно….
пока такое: TypeError: ‘str’ object is not callable
Genabox
     def run_programm():
        global global_command
        sss = ast.literal_eval("{'voice_commands." + global_command + "'}")
        res = dict.fromkeys(sss, global_command)
        
        print(res)
 
 
        res[global_command]()
 
    run_programm()
{'voice_commands.start': ‘start’}
>>>>>>>>class dict
Traceback (most recent call last):
File “d:\discord\sql\sqlquerty.py”, line 413, in <module>
DATABASEASK()
File “d:\discord\sql\sqlquerty.py”, line 390, in DATABASEASK
run_programm()
File “d:\discord\sql\sqlquerty.py”, line 388, in run_programm
res()
KeyError: ‘start’
(discord) PS D:\discord>

KeyError: ‘start’ - тут должно все работать но не хочет
Genabox
     def run_programm():
        global global_command
        s = "{'"+ global_command +"' : 'voice_commands." + global_command + "' }"
        json_acceptable_string = s.replace("'", "\"")
        d = json.loads(json_acceptable_string)
        print(d)
        commands = {
    'start': voice_commands.start
}
        print (commands)
        d[global_command]()
 
    run_programm()

{'start': ‘voice_commands.start’}
{'start': <function start at 0x000002900FB5EF80>}
Traceback (most recent call last):
File “d:\discord\sql\sqlquerty.py”, line 419, in <module>
DATABASEASK()
File “d:\discord\sql\sqlquerty.py”, line 396, in DATABASEASK
run_programm()
File “d:\discord\sql\sqlquerty.py”, line 394, in run_programm
dd()
TypeError: ‘str’ object is not callable
(discord) PS D:\discord>
Genabox
есть идеи? для меня загадка почему 2 одинаковых словаря по разному работают
 {'start': voice_commands.start}
{'start': <function start at 0x000002900FB5EF80>}
xam1816
Genabox
есть идеи? для меня загадка почему 2 одинаковых словаря по разному работают
потому что основы знаешь посредственно, то что ты делаешь, это пиздец. То строку вызываешь как функцию, то запрашиваешь ключ из словаря которого нет, не пробовал расшифровать ошибки, там об этом написано, только по английски
Genabox
 {'start': voice_commands.start}
{'start': <function start at 0x000002900FB5EF80>}
хм я понимая что объект стринг отличается от интеджера ключа
первый словарь создан через json
второй твой пример
вот все есть… чего нет?
xam1816
Genabox
а так все запустилось
чем тебе этот пример не понравился

  
commands = {
    'start': voice_commands.start,
    'stop': voice_commands.stop
    }
 
    def run_programm():
        global global_command
        commands[global_command]()
 
    run_programm()
Genabox
потому что у меня программа должна видеть
global_command
а тут start и stop
это бот который ощет ответы в базе mysql
и сам подумай 100 вопросов - 100 функций
за заколупаюсь это все писать
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