Importierte Funktion mit Namen in einem String starten
Verfasst: Dienstag 25. Dezember 2018, 13:39
Hallo,
ich programmiere momentan einen Discord Bot und habe ein paar Probleme mit meinem Command Handler.
Mein System sieht momentan so aus:
Die Zuordnung funktioniert auch wunderbar. Nun muss ich nur noch die Entsprechende Funktion starten.
Meine Struktur besagt nun, dass es einen Ordner gibt, in dem alle Commands liegen.
Diese werden dann Importiert und müssen nun gestartet werden.
Das ist nun mein Problem, da der Funktionsname in dem String "command" ist.
Ich habe schon mal etwas geschaut und habe es so versucht: leider ohne Erfolg.
Hat da jemand eine Idee? Für andere Vorschläge bezüglich der Struktur bin ich immer offen.
Ich möchte es jedoch vermeiden, mit einem Dictionary zu arbeiten, da ich früher schlechte und unübersichtliche Erfahrungen damit gemacht habe.
Grüße,
Auxilium
PS: Hier noch ein paar Daten zu meinem System: Python 3.6 (PyCharm) auf Windows 10 pro 64bit.
ich programmiere momentan einen Discord Bot und habe ein paar Probleme mit meinem Command Handler.
Mein System sieht momentan so aus:
Code: Alles auswählen
text = str(message.content)
command = text.split(" ")[0]
command = command.replace(command[:1], "")
args = text.split(" ")
args.pop(0)
Meine Struktur besagt nun, dass es einen Ordner gibt, in dem alle Commands liegen.
Diese werden dann Importiert
Code: Alles auswählen
from commands import *
Das ist nun mein Problem, da der Funktionsname in dem String "command" ist.
Ich habe schon mal etwas geschaut und habe es so versucht:
Code: Alles auswählen
globals()[command](command, args, message, client)
Hat da jemand eine Idee? Für andere Vorschläge bezüglich der Struktur bin ich immer offen.
Ich möchte es jedoch vermeiden, mit einem Dictionary zu arbeiten, da ich früher schlechte und unübersichtliche Erfahrungen damit gemacht habe.
Grüße,
Auxilium
PS: Hier noch ein paar Daten zu meinem System: Python 3.6 (PyCharm) auf Windows 10 pro 64bit.