Py学习  »  Python

Python和全局变量

Python程序员 • 8 年前 • 859 次点击  

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。


在Python中使用函数为全局变量赋值时遇到的问题和解决方法。


最近在写Python代码调用函数来为全局变量赋值时遇到了一个问题。这段简单的代码可以表述这个问题:

运行时,这一段代码并没有生效,因为当调用 load_data_into_list()函数后列表仍然是空的,但我一直没有意识到这个问题直到把我这个列表(包含一些新数据)存进同一个文件。我发现旧数据被清除了,仅有新数据被保留下来。所以我做了一些调试,发现当我调用这个函数的时候,列表还是空的。因为虽然我想要把数据加载进全局变量 load_data_into_list(),但是Python创造了另一个仅仅在这一个函数局部范围内的变量list_with_data。很幸运,这个问题可以被轻易解决:

global关键字可以使解释器知道我想调用全局变量。


但当你有许多的全局变量时,那么给他们写很多个global语句去调用全局变量是非常困难的。当编码中有很多的全局变量时,我会把他们放在了一个类里,就像这样:

通过调用这个类,你就再也不需要使用global关键字了,这避免了你写十行代码只为了告诉解释器你想要调用全局变量,大大节省了时间。


英文原文:https://www.codeproject.com/Articles/840773/Python-and-Global-Variables
译者:王二二



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/o55ZjScVSC
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3347