lehrkraefte:blc:informatik:ffprg1-2019:variablen-scope

Studieren Sie folgenden Code:

import inspect
 
# Ein bisschen Python Magic, um Funktionsname und Zeilennummer auszugeben. Duerfen Sie ignorieren.
def niceInfo(s):
    print "Funktion %s, Zeile %d:" % (inspect.getframeinfo(inspect.currentframe().f_back)[2], inspect.currentframe().f_back.f_lineno)
    print s
    print    
 
# foo: Gibt das Quadrat vom Argument zurueck.
# Die Variablen a und b sind hier lokal und haben nicht mit den Variablen a und b ausserhalb zu tun,
# mal abgesehen davon, dass der Wert der Variablen b der Funktion bar in die Variable a der Funktion foo kopiert wird.
def foo(a):
    b=a*a
    niceInfo("a=%d, b=%d" % (a,b))
    return b
 
# bar: Gibt das Quadrat (mit Hilfe von foo) minus 4 zurueck. 
def bar(b):
    a=foo(b)-4
    niceInfo("a=%d, b=%d"% (a,b))
    return a
 
a = 4
b = 5
niceInfo("a=%d, b=%d" % (a,b))
c = bar(3)
# Die Variablen a und b werden nicht veraendert!
niceInfo("a=%d, b=%d, c=%d" % (a,b,c))
  • lehrkraefte/blc/informatik/ffprg1-2019/variablen-scope.txt
  • Last modified: 2019/02/10 11:56
  • by Ivo Blöchliger