A variable created inside a function is called a
local variable.
For example,
the function
myPrint
in
Variable number
contained the local variables
listOfStrings
and
oneBigString
.
It’s called a local variable because the name of a local variable
cannot be mentioned outside the function in which the local variable
was created.
A local variable gets destroyed when we return from the function. In other words, the function gets amnesia when we return from it. The variable is recreated with a new value if we call the function again. In other words, the reincarnated function retains no memory of its previous incarnation. A function that has to count how many times it’s been called can therefore not rely on information stored in its own local variables.
A variable that is not created inside a function
(or inside a
class
definition,
which we’ll do
later)
is called a
global
variable.
Fortunately, we have already seen that a function can mention a global variable.
For example,
the function
verse
in
Define a function
mentions the global variable
verses
,
and the function
score
in the poker example in
Sort
mentions the global variable
increasing
.
These two functions read their global variables,
but did not attempt to write the variables.
But if the function wants to write a global variable,
and not merely read it,
then the function must include the
global
statement in
line
13
of
countcalls.py
.
I’m writing a function that counts how many times it’s been called because this is the simplest example of a function that needs to write as well as read a global variable.
This is call number 1. This is call number 2. This is call number 3.
i
,
n
,
s
,
name
)
and longer names to the global variables
(callCount
,
maxLen
,
increasingRank
).
As George Orwell said in the appendix of
Nineteen
Eighty-Four,
“The B words were in all cases compound words.”
i = 10 #ill-advised name for a global variable def myFunc(): i = 20 #Create a local variable. print(i) #It prints the local variable. myFunc()
20