一、多线程共享全局变量
首先我们来回忆下在函数中修改全局变量的情况。
在一个函数中,对全局变量进行修改的时候,到底是否需要使用 global 进行说明,要看是否对全局变量的执行指向进行了修改。
如果修改了执行指向,即让全局变量指向了一个新的地方,那么必须使用 global。
如果仅仅是修改了指向的空间中的数据,此时不是必须要使用 global。
我们来看一个例子,在这个例子中,让一个子线程对全局变量 +1 操作,另一个子线程只打印全局变量,看看数据是否共享。
from threading im
Python 闭包的使用方法
嵌套函数中的非局部变量
在进入闭包之前,我们必须先了解一个嵌套函数和非局部变量。
在函数中定义另一个函数称为嵌套函数。嵌套函数可以访问包围范围内的变量。
在Python中,这些非局部变量只能在默认情况下读取,我们必须将它们显式地声明为非局部变量(使用nonlocal关键字)才能进行修改。
以下是访问非局部变量的嵌套函数的示例。
def print_msg(msg):
# This is the outer enclosing function
def prin
这篇文章主要介绍了python全局变量引用与修改过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一、引用
使用到的全局变量只是作为引用,不在函数中修改它的值的话,不需要加global关键字。如:
#! /usr/bin/python
a = 1
b = [2, 3]
def func():
if a == 1:
print(a: %d %a)
for i in range(4):
if i in b: