Python: 全局变量
2015-06-19 16:17
501 查看
首先 Python 里的 global var 实际上是 module 级别的,我们现在要做的是在多个 module 间直接共享的。1: module还是用一个专门的 module 存储共享数据,只不过没必要专门建一个静态 module py 文件。main.py 中:
import sys
import typessys.modules["settings"] = types.ModuleType("settings")
import settings
settings.abc = "Hello, Python!"import test
test.test()
test.py 中:
from settings import *def test():
print abc
2. __builtin__如果嫌麻烦,还可以直接使用 __builtin__ 这个默认导入的内置模块。别忘了 LEGB 查找规则。main.py 中:
import __builtin__
__builtin__.abc = "Hello, World!"import test
test.test()
test.py 中:
def test():
print abc
---- 分隔线 ----其实没必要对全局变量深恶痛绝,就像在 C 语言里合理利用 goto 一样能带来惊喜一样。关键是 "度" 和 "把握"。FP 和 OOP 在某些理念上是不同的
import sys
import typessys.modules["settings"] = types.ModuleType("settings")
import settings
settings.abc = "Hello, Python!"import test
test.test()
test.py 中:
from settings import *def test():
print abc
2. __builtin__如果嫌麻烦,还可以直接使用 __builtin__ 这个默认导入的内置模块。别忘了 LEGB 查找规则。main.py 中:
import __builtin__
__builtin__.abc = "Hello, World!"import test
test.test()
test.py 中:
def test():
print abc
---- 分隔线 ----其实没必要对全局变量深恶痛绝,就像在 C 语言里合理利用 goto 一样能带来惊喜一样。关键是 "度" 和 "把握"。FP 和 OOP 在某些理念上是不同的
相关文章推荐
- python收取未读邮件,已读邮件,未回复邮件
- python 收取邮件poplib和imaplib
- python with...as...用法
- Python_Scrapy_7.回调函数
- Python cpu与cpu上的多线程的区别讲解
- Python 和其他编程语言数据类型的比较
- python删除非空目录的方法
- (转)如何使用Psyco为你的Python程序提速。
- Python模块subprocess小记
- windows平台下如何用Python杀进程
- python round(x)函数
- 用Python生成不依赖dll的exe的操作步骤简介
- python的xml库操作读写文件真是慢的无语,跟直接操作文本型的操作真不是一个级别的
- 使用Python和xml.etree.ElementTree解析xml文件
- python 调用word打开doc文档报错,“word无法启动转换器mswrd632.wpc”
- eclipse新建python项Project interpreter not specified
- python Word 编程
- python数组交集、并集与不同
- python数组交集、并集与不同
- python链接mysql常见问题汇总