Morpheus Tutorial #20 : Gültigkeit von Variablen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
hlech65730
User
Beiträge: 9
Registriert: Samstag 10. Februar 2018, 19:28

Hallo @ all,
bei mir ( Windows 10, Python 2.7 ) funktioniert das hier nicht ( so wie bei Morpheus ) :

195 def fvartest():
196 def tstlocal():
197 tstvar = "local text "
198 def do_nonlocal():
199 nonlocal tstvar = 'non local text'
200 tstvar = 'non local text'
201 def do_global():
202 global tstvar
203 tstvar = 'global text'
204 tstvar = "text "
205 tstlocal()
206 do_nonlocal()
207 do_global()
208 print("after init:" , tstvar )

fvartest()
print("global", tstvar )


File "First_Try_with_comments.py", line 199
nonlocal tstvar = 'non local text'
^
SyntaxError: invalid syntax

Die Einrückungen werden nicht angezeigt, sind aber richtig !
Offensichtlich gibt es "nonlocal" als Schlüsselwort nicht.
Kann mir jemand helfen warum ? Geht das bei der Version 2.7 nicht ?
Wie geht es dann ?
Gruß, HLech65730
Bolitho
User
Beiträge: 219
Registriert: Donnerstag 21. Juli 2011, 07:01
Wohnort: Stade / Hamburg
Kontaktdaten:

Du kannst den code zwischen die code-Tags setzen, dann klappt das auch mit der Einrückung.

Zur Frage: nonlocal wurde erst mit Python 3 eingeführt und funktioniert nicht unter Python 2.7. Python 2.7 Support läuft bald aus, es ist also eine gute Idee sich mit Python 3 auseinanderzusetzen.
Benutzeravatar
__blackjack__
User
Beiträge: 13122
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Und weder ``nonlocal`` noch ``global`` sollte man verwenden. Also braucht man das als Anfänger auch nicht wirklich lernen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
ThomasL
User
Beiträge: 1367
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Das Video ist vom 07.09.2015 und Morpheus hat zu dem Zeitpunkt mindestens Python 3.4 verwendet
und ich gehe davon aus, dass er dies zu Beginn des Kurses kommuniziert hat.
Den Kurs mit 2.7 nachzuvollziehen ist nicht unbedingt sinnvoll.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
hlech65730
User
Beiträge: 9
Registriert: Samstag 10. Februar 2018, 19:28

Danke !!! Steige auf Python 3.x um !!
Antworten