DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

Python的变量共享问题


模块中的多个类之间经常要共享某一变量,比如生成BVT报告的JUnit适配器类实例需要根据Cobertura适配器类实例的计算出来的有效行数计算千行代码测试用例数,又比如适配器类在备份BVT报告时需要知道报告备份的地址,而这个地址是保存在BVT类中的。

以上场景都需要解决变量在类实例间的传递问题,办法有4个:使用模块级的全局变量、使用类的静态成员变量、使用环境变量、定义为global。

模块级全局变量适用于此变量在模块内共享的情况,优点是简单易懂,在模块开始部分定义一个空字典,条目的key是该条目的功能说明;

类静态成员适用于该变量是类的普遍特性的情况,用 self.class.var_name 的方法定义,用 ClassName.var_name 的方法获取。

环境变量和global变量适用于在模块间共享变量的情况,但对数据的封装性比较差,尽量不要使用。



Published

May 6, 2011

Last Updated

May 6, 2011

Category

Tech

Tags

  • 变量 2
  • 共享 2
  • Python 136

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor