Python – die besten Beiträge

Wie kann ich eine Python Methode in einen int() umwandeln?

Ich schreibe aktuell an einem Python Code, dass mir die Uhrzeit anzeigen soll:

from tkinter import *
from time import *

Fenster = Tk()
Fenster.geometry(str(Fenster.winfo_screenwidth())+"x"+str(Fenster.winfo_screenheight()))
Fenster.title("Funktionen")

def Aktuelle_Zeit():
    Label(text = strftime("%H:%M:%S", localtime(time()))).place(x = int(Fenster.winfo_screenwidth)/4, y = int(Fenster.winfo_screenheight)/4)
Button(text = "Aktuelle Zeit", command = Aktuelle_Zeit).place(x = int(Fenster.winfo_screenwidth())/6*5, y = int(Fenster.winfo_screenheight()/20))


mainloop()

Jetzt kommt der Fehler:

Exception in Tkinter callback
Traceback (most recent call last):
 File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.752.0_x64__qbz5n2kfra8p0\Lib\tkinter\__init__.py", line 1948, in __call__
  return self.func(*args)
      ^^^^^^^^^^^^^^^^
 File "e:\Programmieren\New.py", line 10, in Aktuelle_Zeit
  Label(text = strftime("%H:%M:%S", localtime(time()))).place(x = int(Fenster.winfo_screenwidth)/4, y = int(Fenster.winfo_screenheight)/4)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'method'

Ich denke: Das heißt, dass ich eine Methode in einen integer umwandeln möchte, das aber nicht geht.

Das Label soll aber hinter einem Viertel des Bildschirms plaziert werden. Deswegen nehme ich die Bildschirm Größe und teile sie durch 4. Wie kann ich das Ganze sonst machen, ohne das ein Fehler kommt? Würde mich bei einer Antwort freuen.

Euer Alex

Computer, Programmiersprache, Python, Zeit, Python 3

**kwargs in __init__() Methode und "self" in Python?

Hey Leute,

ich habe heute begonnen, Kivy zu lernen. Kivy ist ein Python Framework, für plattformübergreifende Apps. Ich bin allerdings noch ein Anfänger in Python und da man für Kivy OOP beherrschen muss. Habe ich mir eben ein paar Tutorials angeschaut und das Konzept von Klassen auch verstanden und schon etwas geübt. Auch das "self" eine Referenz auf die aktuelle Instanz ist habe ich kapiert. Aber wieso kann man aus einer Methode auf die Instanzvariablen nur zugreifen, wenn vor diesen "self" steht?

Und meine zweite Frage ist, wozu bei der Initialisierung der __init__() Methode manchmal noch so ein **kwargs steht. Also hier mal ein Beispielcode:

class MyGrid(GridLayout):

  def __init__(self, **kwargs):

    super().__init__(**kwargs)

    self.word_list = ["python", "java", "ruby", "javascript"]

    self.guess_word = []

    self.secret_word = ""

    self.remaining_guesses = 6

    self.img_path = "img/hangman_{}.png"

    self.create_game_layout()

    self.new_game()

Das ist jetzt mal nur die __init__() Methode einer MyGrid Klasse die von GridLayout erbt.

Ach ja. Was dieses "super()" bedeutet habe ich auch nicht so ganz verstanden.

Ich wäre sehr sehr dankbar wenn mir jemand helfen könnte. Denn ich will für eine Projektarbeit im Informatikunterricht umbedingt eine Android Kivy App für Hangman programmieren. Aber dafür muss ich diese Themen erst einmal verstehen.

LG Code Snake

Programmiersprache, Python, Instanz, Python 3, Objektorientierte Programmierung, App Programmieren

Meistgelesene Beiträge zum Thema Python