Kleines Problem mit global und Gültigkeitsbereich.
Verfasst: Freitag 7. März 2008, 07:23
Hi
Ist noch früh am Morgen aber schon ein Problem
Zwar will der Gültigkeitsbereich nicht so wie ich will.
Wenn ich ne Funktion oder Klasse schreibe ala:
Und dann mit z = Touch() aufrufe hab ich am Ende ein x und y.
x und y existierten vor dem aufrufen der Klasse nicht.
Wenn ich nun die genau gleiche Klasse importiere und ausführe bekomm ich eine Fehlermeldung aber diese erscheint nicht beim ausführen sondern erst wenn ich x oder y ausgeben will weil x,y angeblich nicht existieren.
Tja, jetzt frag ich mich wieso die exakt gleiche Klasse nach einem Import rumzickt und wenn man sie nicht importiert funktioniert.
Kann mir das jemand verraten?
Hab schon in meinem Python Ge-Packt, Einführung in Python und OpenBook - Python, A Byte Of Python geblättert ohne Antwort auf meine Frage.
Ist noch früh am Morgen aber schon ein Problem
Zwar will der Gültigkeitsbereich nicht so wie ich will.
Wenn ich ne Funktion oder Klasse schreibe ala:
Code: Alles auswählen
class Touch:
def __init__(self):
global x,y
x = 'Hallo'
y = 'Welt'
Code: Alles auswählen
>>> class Touch:
def __init__(self):
global x,y
x = 'Hallo'
y = 'Welt'
>>> z = Touch()
>>> x,y
('Hallo', 'Welt')
>>>
Wenn ich nun die genau gleiche Klasse importiere und ausführe bekomm ich eine Fehlermeldung aber diese erscheint nicht beim ausführen sondern erst wenn ich x oder y ausgeben will weil x,y angeblich nicht existieren.
Code: Alles auswählen
>>> from TEST import Touch
>>> z = Touch()
>>> x,y
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
x,y
NameError: name 'x' is not defined
>>> y
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
y
NameError: name 'y' is not defined
>>>
Kann mir das jemand verraten?
Hab schon in meinem Python Ge-Packt, Einführung in Python und OpenBook - Python, A Byte Of Python geblättert ohne Antwort auf meine Frage.