Ich versuche ein einfaches Spiel zu schreiben und muss einige Informationen in eine Datei schreiben. Dies ist, wie der Code sieht aus wie bisher:Versuche, Strings in einer Datei mit einer Klassenfunktion zu schreiben
class Player:
def __init__(self, name, password, file):
with open(file) as inputFile:
self.playerAndPw = inputFile.read()
self.name = name
self.password = password
def add(self, name, password, file):
file.write(name + " | " + password)
def __str__(self):
print("The player's name is called " + self.name + "\n")
print("Welcome to Guess My Number!")
start = input("Press 1 for New Account, 2 for Log In: ")
if start == "1":
player = Player
playerID = input("Enter a name: ")
playerPassword = input("Enter a password: ")
fileName = "PlayerAndPassword.txt"
player.add(playerID, playerPassword, fileName)
In der letzten Zeile gibt es eine Ausnahme bei der letzten Klammer. „Parameter‚Datei‘ungefüllt So ist der Code nicht die Informationen der Funktion erhalten kann ich verwende in der letzten Zeile.
Wäre toll, wenn mir jemand helfen könnte! Thank you!
Warum lesen möchten sind vorbei Sie 'Name ',' password' und 'file' als Parameter zu' Player.add', wenn Sie diese bereits an den Klassenkonstruktor übergeben haben? – Tagc
Auch die Zeile 'player = Player' initialisiert keine neue Instanz von' Player'. Dazu brauchst du 'player = Player (...)' und gibst die benötigten Argumente ein. – Tagc
, aber Sie können die Argumente nicht übergeben, da Sie eine Datei eingeben müssen. Sieht so aus, als ob dein Design fehlerhaft ist: Du kannst keinen Konstruktor mit einem Dateiargument erstellen, weil das bedeuten würde, dass du niemals einen _new_ Player erstellen kannst. Bessere laden/speichern Methoden, und verwenden Sie Json zu serialisieren/unserialisieren ... –