Du bringst hier ein paar Dinge durcheinander, die du erst einmal entwirren musst.
Zuerst einmal: Globale Variablen möchte man in seinem Programm nicht haben. Sie sind auch völlig unnötig. Vergiss, dass es global gibt. Wenn du an einen Punkt kommst, an dem du das verwenden musst oder über globale Variablen nachdenkst, machst du grundsätzlich etwas verkehrt.
Es gilt: Auf Modulebene - also nicht eingerückt - gehören ausschließlich: der/die/das shebank, Importe und die Definition von Klassen, Funktionen und Konstanten (Konstanten in heißt hier: Werte die sich während der Laufzeit niemals ändern). Und natürlich die Importweiche mit if __name__ == __main__: [...].
Ich empfehle dringend, das offizielle Python-Tutorial durchzuarbeiten. Denn da wird ziemlich gut erklärt, wie Klassen und Objektorientierte Programmierung in Python funktioniert.
Denn du willst gar keine globale Variable. In deinen Beispielen willst du ja eher Eigenschaften in der Instanz einer Klasse setzen.
Und diese pseudo Setter und Getter sind in Python auch völlig überflüssig.
Code: Alles auswählen
class Person():
def __init__(self, name=""):
self.name = name
def main():
person = Person("stonie")
print(person.name)
person.name = "Nobody"
print(person.name)
if __name__ == "__main__":
main()
Wobei man Klassen nicht als Wertspeicher benutzen sollte. Da gibt es in Python schönere Methoden.
Allerdings entspricht das hier in etwa deinen Beispielen.