[Python-de] Parent außerhalb einer Klasse
Diez B. Roggisch
deets at web.de
Don Jul 7 18:29:28 CEST 2005
Stefan Miefert wrote:
> Hallo,
>
> wenn ich aufrufe
>
> if __name__="_main":
> meinWert="Hallo"
> c = klasse()
>
> wie kann ich dann innerhalb der Klasse auf "meinWert" zugreifen?
>
> self als parent zu übergeben funktioniert ja leider nicht
Ehrlich gesagt verstehe ich nicht genau was du willst. Was ist deiner
Ansicht nach ein "parent"?
Zum einen kannst du meinWert als Parameter an klasse übergeben:
class klasse:
def __init__(self, einWert):
self.einWert = einWert
if __name__ == "__main__":
c = klasse("Hallo")
Alternativ kann man auch in klasse-Klassenmethoden auf globale Variablen
zugreifen:
class klasse:
def __init__(self, einWert):
print meinWert
if __name__ == "__main__":
meinWert = "Hallo"
c = klasse()
Globale Variablen sind aber eine schlechte idee - man muss sich beim dem
versuch sie zum umgehen zwar nicht umbringen, aber Nah-Tod-Erfahrungen
sind angebracht - sonst kommen selbige spätestens beim Debuggen. Wichtig
auch noch: global bedeutet immer modulglobal - ein "total-global" gibt's
nicht.
Wichtig: Wenn klasse den Wert der unter dem Namen "meinWert" im
(modul)-globalen Namensraum ändern möchte, dann muss das so aussehen:
class klasse:
def __init__(self, einWert):
print meinWert
def tuwas(self):
global meinWert # Wichtig, damit wird meinWert beim setzen im
# modulnamensraum gesetzt
meinWert = "pillepalle"
Diez