[python] Globals: met return geen global?

Pagina: 1
Acties:

  • yootje
  • Registratie: December 2002
  • Laatst online: 29-09 07:24
Ik dacht dat ik het snapte, maar toch niet. Als ik de volgende code probeer uit te voeren:

code:
1
2
3
4
5
6
7
8
def blaat():
    global blaat2
    return ' yep'
    blaat2 = 'koe'

blaat2='niet' 
blaat()
print blaat2


komt er telkens niet uit, terwijl het koe moet zijn. Voer ik echter de volgende code uit:


code:
1
2
3
4
5
6
7
def blaat():
    global blaat2
    blaat2 = 'koe'

blaat2='niet' 
blaat()
print blaat2


Dan komt er wel koe uit. Waarom is dit, en nog belangrijker, hoe kan ik dit omzeilen?

Verwijderd

Ik kan geen python, maar het is vrij standaard dat alle code die na de "return" staat NIET uitgevoerd wordt. In jouw eerste voorbeeld zal hij er dus nooit 'koe' inzetten.

Verwijderd

He verdomme. Dacht ik net, "wat leuk, weer een Python vraag. Interessant!".

Beetje jammer...

l2p!

Misschien jammer, maar deze reply voegt ook weinig toe aan dit topic. ;)

[ Voor 29% gewijzigd door RobIII op 12-02-2007 14:21 ]


  • igmar
  • Registratie: April 2000
  • Laatst online: 30-11 18:38

igmar

ISO20022

yootje schreef op zondag 11 februari 2007 @ 23:42:
Ik dacht dat ik het snapte, maar toch niet. Als ik de volgende code probeer uit te voeren:

code:
1
2
3
4
def blaat():
    global blaat2
    return ' yep'
    blaat2 = 'koe'
Waarom zet je code na een return statement ? return is return, dus alle code die erna staat zal niet meer uitgevoerd worden. Belangrijker : waarom deze constructie ?