全局变量与类似配置文件的模块文件
2015-10-20 18:00
337 查看
# -*- coding: cp936 -*- #python 27 #xiaodeng #全局变量 #重点问题: 1)函数调用的先后顺序导致结果不同 2)使用类似于配置文件的模块文件控制全局变量和控制变量的修改等操作 在文件之间进行通信的最好办法是通过调用函数,传递参数,然后得到返回值 虽然一定程度上,会增加代码量,但是可读性和维护性上会变得非常友好 当人们在阅读第一个文件时,就会看到这个函数,就知道这是一个接口(接入点),并知道将改变变量x的值 当然,我们依然还是要最小化的修改文件之间的变量,尽可能的保持变量的稳定,不随便修改变量的值 #案例 x=100 def func1(): global x x=88 print x def func2(): global x x=77 print x #调用顺序不同其结果不同 #x的值取决于函数的调用先后顺序,因为这2个函数是耦合在一起的 print x func1() func2() print x #结论: #全局变量使得程序更难以理解和使用,所以尽可能的控制使用全局变量 eg: #test.py name='xiaodeng' import test print test.name #一些程序情况下,会委任一个单一的模块文件去定义所需要使用到的所有全局变量--->变量名封装思想 #但是这里又会出现一个问题,导致文件之间的依赖性增强,可以考虑在源码中添加备注。 #目前最佳办法: eg: #fisrt.py x=99 def setX(new): global x x=new #test.py import fisrt fisrt.setX(88) print x #案例说明: 在文件之间进行通信的最好办法是通过调用函数,传递参数,然后得到返回值 虽然一定程度上,会增加代码量,但是可读性和维护性上会变得非常友好 当人们在阅读第一个文件时,就会看到这个函数,就知道这是一个接口(接入点),并知道将改变变量x的值 当然,我们依然还是要最小化的修改文件之间的变量,尽可能的保持变量的稳定,不随便修改变量的值
相关文章推荐
- Android仿淘宝购物车
- PostgreSQL数据的导出导入
- Python日期和时间
- AFNetworking 3.0迁移指南
- AS问题解决系列3—iCCP: Not recognizing known sRGB profile(转)
- 黑马程序员——基础知识--继承
- 修改initramfs-3.18.6-cloud.img
- 修改Spring-task 定时时间
- VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#)
- springmvc+shiro简单配置及作用(applicationContext.XML springmvc部分)
- iOS无处不在详解iOS集成第三方登录(SSO授权登录无需密码)
- 工作备忘-ios中oc枚举值与字符串之间的转换
- Android 解析XML数据
- GraphXML.html backup
- Qcril
- 怎么理解【前台PHP,中间件用Java,底层用C/C++】
- php 常见的内置函数及用法
- web项目 maven下 使用servlet调用 mysql数据库
- 安卓 使用webview加载gif格式动画
- javascript对象的属性,方法,prototype作用范围分析