Ich habe mir eine anfängertaugliche Aufgabe gestellt: Ich möchte ein Programm entwickeln, das den Spielstand bei einem Kartenspiel (Schafkopf) errechnet und fortschreibt. Im Prinzip funktioniert schon alles, aber jetzt möchte ich - bevor ich mich um die GUI kümmere - den Code "schöner" machen.
Ich habe eine Klasse "Spieler" definiert:
Code: Alles auswählen
class Spieler:
def __init__(self, name, konto):
self.name = name
self.konto = konto
Code: Alles auswählen
def print_spielstand(self):
print(self.name, ": ", self.konto)
Erstes Beipiel (funktioniert):
Code: Alles auswählen
s1 = Spieler((input ("Spieler 1: ")), 0)
s2 = Spieler((input ("Spieler 2: ")), 0)
s3 = Spieler((input ("Spieler 3: ")), 0)
s4 = Spieler((input ("Spieler 4: ")), 0)
Code: Alles auswählen
s1.print_spielstand()
s2.print_spielstand()
s3.print_spielstand()
s4.print_spielstand()
Code: Alles auswählen
for i in range (1,5):
var: str = 's' + str(i)
var = Spieler((input ("Spieler " + str(i) + ": ")), 0)
Code: Alles auswählen
for i in range (1,5):
var: str = 's' + str(i)
var.print_spielstand()
Ergebnis der 2. Lösung: Bei der Eingabe der Namen keine Fehlermeldung, aber bei der Ausgabe:
===========
Traceback (most recent call last):
File "C:/Users/julian/PycharmProjects/Schafkopfrechner/Schafkopfrechner.py", line 166, in <module>
main()
File "C:/Users/julian/PycharmProjects/Schafkopfrechner/Schafkopfrechner.py", line 159, in main
var.print_spielstand()
AttributeError: 'str' object has no attribute 'print_spielstand'
Bin um jede Hilfe dankbar.