Ich möchte ein statisches Klassenattribut number_of_players halten, das dem Spiel mitteilt, wie viele Spieler sich entschieden haben zu spielen, das in meinen Klassen geändert werden kann.Lokale Variable, auf die vor der Zuweisung verwiesen wird; Statisches Klassenattribut für die Anzahl der Spieler
Ich habe meine Eltern-Klasse:
class SceneBase:
number_of_players = None
#more code
jedoch in der Kind-Klasse, wenn ich versuche, die NUMBER_OF_PLAYERS zu ändern, ich bin die lokale Variable immer vor assingment Fehler verwiesen wird.
class ChooseNumberOfPlayersScene(SceneBase):
def change_to_one_player_mode(self):
number_of_players = 1
print("The number of players is now" + number_of_players)
Ich habe versucht, auch als selbst Attribut die Anzahl der Spieler Initialisierung
class SceneBase:
def __init__(self):
self.number_of_players = None
Aber wenn ich versuche ausgeführt, dass dies mit:
class ChooseNumberOfPlayersScene(SceneBase):
def change_to_one_player_mode(self):
self.number_of_players = 1
print("The number of players is now" + self.number_of_players)
self.number_of_players nie und kehrt ändert Keine
Ich bin verwirrt, wie man meine Anzahl der Spieler ändert. Gibt es eine Möglichkeit, dass ich es von allen Klassen modifizieren kann?
'SceneBase.number_of_players' Wenn Sie ein Klassenmitgliedsattribut machen, dann müssen Sie darauf zugreifen wie ein – user1767754
Es klingt, als ob Sie eine Instanzvariable dafür verwenden sollten. Setzen Sie 'self.number_of_players', um den Standardwert für eine bestimmte Klasseninstanz zu überschreiben. –
@ user1767754 Ich glaube nicht, dass die Absicht war, die Basisklasse zu modifizieren. –