globals() Befehl in einer Klasse mit self verwenden
Verfasst: Freitag 28. Juli 2023, 18:51
Hallo alle zusammen,
ich bin relativ neu in Python und habe leider folgendes Problem:
Auf diese Weise, ohne Klassen, funktioniert der Code einwandfrei,
vor allem die Zeile "partial(globals()['meine_funktion'])('HAHA')".
from functools import partial
def meine_funktion(i):
print('=== ' + i)
partial(meine_funktion,('hihi'))()
globals()['meine_' + 'funktion']('huhu')
partial(globals()['meine_funktion'])('HAHA')
Aber sobald ich Klassen verwende, funktioniert der Befehl "globals()['self." überhaupt nicht.
Ich kriege dann die Fehlermeldung "KeyError". Ohne das Wort "self" funktioniert das sowieso
nicht innerhalb der Klasse.
from functools import partial
import tkinter as tk
def main():
root = tk.Tk()
gui = Window(root)
gui.root.mainloop()
class Window:
def __init__(self, root):
self.root = root
self.root.title("Wizard")
self.root.geometry("1920x1010+0+0")
self.root.configure(background='black')
self.meine_funktion_2()
def meine_funktion(self, i):
print('=== ' + i)
def meine_funktion_2(self):
# Diese untere Zeile funktioniert.
partial(self.meine_funktion,'Hahaha')()
# Aber die unteren 2 Zeilen funktionieren nicht.
globals()['self.meine_' + 'funktion']('huhu')
partial(globals()['self.meine_funktion'])('HAHA')
main()
Ich hoffe, ihr könnt mir helfen.
Vielen Dank schon einmal im Vorraus.
ich bin relativ neu in Python und habe leider folgendes Problem:
Auf diese Weise, ohne Klassen, funktioniert der Code einwandfrei,
vor allem die Zeile "partial(globals()['meine_funktion'])('HAHA')".
from functools import partial
def meine_funktion(i):
print('=== ' + i)
partial(meine_funktion,('hihi'))()
globals()['meine_' + 'funktion']('huhu')
partial(globals()['meine_funktion'])('HAHA')
Aber sobald ich Klassen verwende, funktioniert der Befehl "globals()['self." überhaupt nicht.
Ich kriege dann die Fehlermeldung "KeyError". Ohne das Wort "self" funktioniert das sowieso
nicht innerhalb der Klasse.
from functools import partial
import tkinter as tk
def main():
root = tk.Tk()
gui = Window(root)
gui.root.mainloop()
class Window:
def __init__(self, root):
self.root = root
self.root.title("Wizard")
self.root.geometry("1920x1010+0+0")
self.root.configure(background='black')
self.meine_funktion_2()
def meine_funktion(self, i):
print('=== ' + i)
def meine_funktion_2(self):
# Diese untere Zeile funktioniert.
partial(self.meine_funktion,'Hahaha')()
# Aber die unteren 2 Zeilen funktionieren nicht.
globals()['self.meine_' + 'funktion']('huhu')
partial(globals()['self.meine_funktion'])('HAHA')
main()
Ich hoffe, ihr könnt mir helfen.
Vielen Dank schon einmal im Vorraus.