官术网_书友最值得收藏!

Variable scope

It is important to understand the scoping rules of variables inside functions. Each time a function executes, a new local namespace is created. This represents a local environment that contains the names of the parameters and variables that are assigned by the function. To resolve a namespace when a function is called, the Python interpreter first searches the local namespace (that is, the function itself) and if no match is found, it searches the global namespace. This global namespace is the module in which the function was defined. If the name is still not found, it searches the built-in namespace. Finally, if this fails then the interpreter raises a NameError exception. Consider the following code:

    a=10; b=20 
def my_function():
global a
a=11; b=21
my_function()
print(a) #prints 11
print(b) #prints 20

Here is the output of the preceding code:

In the preceding code, we define two global variables. We need to tell the interpreter, using the keyword global, that inside the function, we are referring to a global variable. When we change this variable to 11, these changes are reflected in the global scope. However, the variable b we set to 21 is local to the function, and any changes made to it inside the function are not reflected in the global scope. When we run the function and print b, we see that it retains its global value.

主站蜘蛛池模板: 得荣县| 博爱县| 宁陕县| 镇坪县| 广汉市| 宁南县| 黎川县| 龙胜| 栖霞市| 龙游县| 麟游县| 蛟河市| 得荣县| 安义县| 华宁县| 东台市| 中牟县| 浮梁县| 河源市| 华坪县| 康平县| 新安县| 孟津县| 宾阳县| 麻栗坡县| 徐汇区| 高安市| 商河县| 广昌县| 鄂州市| 平果县| 新干县| 大同县| 垣曲县| 会昌县| 仙游县| 利津县| 亳州市| 垦利县| 呼和浩特市| 平泉县|