Python实现全局变量的两个解决方法

yipeiwu_com6年前Python基础

本文针对Python的全局变量实现方法简述如下:
先来看下面一段测试程序:

count = 0
def Fuc(count):
  print count
  count += 1
for i in range(0, 10):
  Fuc(count)

运行结果是:

>>>
0
0
0
0
0
0
0
0
0
0

很显然,这并不是我们想要的结果。

针对这一问题的解决方法就是采用全局变量:

global a
a = 3
def Fuc():
  global a
  print a
  a = a + 1
if __name__ == "__main__":
  global a
  for i in range(10):
    Fuc()print 'hello'
  print a

运行结果为:

>>>
3
4
5
6
7
8
9
10
11
12
hello
13

需要注意:哪里需要全局变量,哪里声明一下;但是函数千万不要传参数,比如用Fuc(a)是不行的。

解决方法2--列表:

示例代码如下:

a = [3]
def Fuc():
  print a[0]
  a[0] = a[0] + 1
if __name__ == "__main__":
  global a
  for i in range(10):
    Fuc()
  print 'hello'
  print a[0]

结果同上

列表也可以比较简单的实现这一功能

相关文章

Windows 7下Python Web环境搭建图文教程

Windows 7下Python Web环境搭建图文教程

最近想尝试一下在IBM Bluemix上使用Python语言创建Web应用程序,所以需要在本地搭建Python Web的开发测试环境。 关于Python的版本 进入Python的网站,鼠...

Python 中Django安装和使用教程详解

Python 中Django安装和使用教程详解

  一、安装     一般使用cmd 安装就可以   手动安装通过下载方式    django官方网站:https://www.djangoproject.com/    python官...

Python脚本处理空格的方法

Python脚本处理空格的方法

最近小编遇到一个奇葩问题,就是上传代码时拷贝vs里面的代码不能直接粘贴,否则空格会不符合要求,怎么解决此问题呢?下面小编给大家分享我的解决方案,希望能够帮助到大家! 去掉空格代码...

Python中请不要再用re.compile了

Python中请不要再用re.compile了

前言 如果大家在网上搜索Python 正则表达式,你将会看到大量的垃圾文章会这样写代码: import re pattern = re.compile('正则表达式') text...

numpy判断数值类型、过滤出数值型数据的方法

numpy是无法直接判断出由数值与字符混合组成的数组中的数值型数据的,因为由数值类型和字符类型组成的numpy数组已经不是数值类型的数组了,而是dtype='<U11'。 1、ma...