Hallo,
kann man den Wert einer Variable mit onkeypress ändern?
Also das man zum Beispiel q drückt und dann hat i den Wert 1.
Habt ihr irgendwelche ideen?
Mfg Boggel
Wert einer Variable mit onkeypress ändern
Wenn ich mir das hier anschaue https://docs.python.org/3.5/library/tur ... onkeypress
ginge das wohl nur durch Verwendung von global in der übergebenen Funktion und das empfiehlt hier eigentlich niemand.
ginge das wohl nur durch Verwendung von global in der übergebenen Funktion und das empfiehlt hier eigentlich niemand.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
@ThomasL: bei onkeypress wird ein Funktionsobjekt übergeben, das man wie bei allen anderen Event-basierten Programmierungen per partial oder Klassenmethoden mit Parametern anreichern kann. Aber bei Turtle gibt es sowieso viel globalen Zustand.
Könntest du mir dazu, wenn Zeit und Lust, dazu ein Beispiel geben, das ist ein Bereich mit dem ich mich noch gar nicht beschäftigt habe. Danke dir vorab.Sirius3 hat geschrieben: Sonntag 31. März 2019, 21:00 @ThomasL: bei onkeypress wird ein Funktionsobjekt übergeben, das man wie bei allen anderen Event-basierten Programmierungen per partial oder Klassenmethoden mit Parametern anreichern kann.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
- __blackjack__
- User
- Beiträge: 14032
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Na ganz normal OOP halt:
Code: Alles auswählen
#!/usr/bin/env python3
from functools import partial
from turtle import Screen
class App:
def __init__(self, screen):
self.screen = screen
self.flag = False
self.screen.onkeypress(partial(self.set_flag, True), 'a')
self.screen.onkeyrelease(partial(self.set_flag, False), 'a')
self.screen.onkey(self.screen.bye, 'q')
self.screen.listen()
def set_flag(self, value):
print(f'Setting `flag` to {value}.')
self.flag = value
def main():
screen = Screen()
_app = App(screen)
screen.mainloop()
if __name__ == '__main__':
main()
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Danke dir, functools.partial war das was mir nicht geläufig war. Lerne jeden Tag.__blackjack__ hat geschrieben: Montag 1. April 2019, 09:50Code: Alles auswählen
#!/usr/bin/env python3 from functools import partial self.screen.onkeypress(partial(self.set_flag, True), 'a') self.screen.onkeyrelease(partial(self.set_flag, False), 'a')
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png