`

python之全局变量的测试

阅读更多

结论:python的全局变量:int string, list, dic(map) 如果存在global就能够修改它的值。而不管这个global是否是存在于if中,也不管这个if是否能够执行到。

 

但是,如果没有

 if bGlobal:
        global g_strVal;

int string 将会报错。而list dic(map)是ok的。

 

 

#!/usr/bin/dev python

import sys
import os

g_nVal = 0;
g_strVal = "aaaa";

g_map = {
"aaa" : "111",
"bbb" : "222",
"ccc" : "333",
"ddd" : "444"
}

g_ls = ['a', 'b', 'c']

def FixInt(bGlobal = False):
    if bGlobal:
        global g_nVal;    
        
    g_nVal = g_nVal + 1;
    
def FixString(bGlobal = False):
    if bGlobal:
        global g_strVal;
    
    #fix string value
    g_strVal = g_strVal + 'b';

def FixMap(bGlobal = False):
    if bGlobal:
        global g_map;
    
    #fix map value    
    g_map['aaa'] = 'aaa__' + g_strVal;
    g_map['bbb'] = 'bbb__' + g_strVal;
    g_map['ccc'] = 'ccc__' + g_strVal;
    g_map['ddd'] = 'ddd__' + g_strVal;
    
def FixList(bGlobal = False):
    if bGlobal:
        global g_ls;
        
    g_ls.append('1');        
    
def PrintVal(strInfo):
    if strInfo:
        print("==== %s =====" %strInfo);
        
    print("int value:%d" %g_nVal);
    print("string value:%s" %g_strVal);
    print("map value:%s" %g_map);
    print("list value:%s" %g_ls);
    print("\n\n");    

if "__main__" == __name__:
    
    PrintVal("The orgin vlaue");
    
    FixInt();
    FixString();
    FixMap();
    FixList();
    
    PrintVal("print all bGlobal = False vlaue");
    
    FixInt(True);
    FixString(True);
    FixMap(True);
    FixList(True);
    
    PrintVal("print all bGlobal = True vlaue");
    
    

    

 

结果:

==== The orgin vlaue =====
int value:0
string value:aaaa
map value:{'aaa': '111', 'bbb': '222', 'ccc': '333', 'ddd': '444'}
list value:['a', 'b', 'c']



g_nVal src:0
g_nVal dst:1
==== print all bGlobal = False value =====
int value:1
string value:aaaab
map value:{'aaa': 'aaa__aaaab', 'bbb': 'bbb__aaaab', 'ccc': 'ccc__aaaab', 'ddd': 'ddd__aaaab'}
list value:['a', 'b', 'c', '1']



g_nVal src:1
g_nVal dst:2
==== print all bGlobal = True value =====
int value:2
string value:aaaabb
map value:{'aaa': 'aaa__aaaabb', 'bbb': 'bbb__aaaabb', 'ccc': 'ccc__aaaabb', 'ddd': 'ddd__aaaabb'}
list value:['a', 'b', 'c', '1', '1']


分享到:
评论

相关推荐

    Python 072.局部变量和全局变量_效率测试.mp4

    Python 072.局部变量和全局变量_效率测试.mp4

    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 很...

    Python代码-全局变量和局部变量.py

    ——学习参考资料:仅用于个人学习使用! 本代码仅作学习交流,切勿用于商业用途,否则后果自负。若涉及侵权,请联系,会尽快处理! 未进行详尽测试,请自行调试!

    Python代码-使用全局变量共享数据.py

    ——学习参考资料:仅用于个人学习使用! 本代码仅作学习交流,切勿用于商业用途,否则后果自负。若涉及侵权,请联系,会尽快处理! 未进行详尽测试,请自行调试!

    python100道面试题及解答()全部答案 pycharm 测试过 py3环境)

    2、如何在一个函数内部修改全局变量 利用global 修改全局变量 3、列出5个python标准库 os:提供了不少与操作系统相关联的函数 sys: 通常用于命令行参数 re: 正则匹配 math: 数学运算 datetime:处理日期时间

    python接口自动化测试之接口数据依赖的实现方法

    抽取之前接口的返回值存储到全局变量字典中。 初始化接口请求时,解析请求头部、请求参数等信息中的全局变量并进行替换。 发出请求。 核心代码实现: 抽取接口的返回值存储到全局变量字典中 # 抽取接口的返回值...

    基于Python+Requests+Pytest的接口自动化项目源码.zip

    基于Python+Requests+Pytest的接口自动化项目源码.zip采用统一请求封装,session自动关联支持多session之间切换多变量环境,可设置变量,全局变量及环境变量支持多套配置文件之间切换Yaml文件可关联Csv文件,Yaml...

    2019千峰Python超详细入门教程(百度云盘分享).docx

    │ │ 17、修改全局变量.py │ │ 18、修改嵌套作用域中的变量.py │ │ 1、函数概述.py │ │ 2、最简单的函数(无参无返回值).py │ │ 3、函数的参数.py │ │ 4、函数的返回值.py │ │ 5、传递参数.py │ │ 6、...

    python接口自动化框架源码

    3、实现全局变量和局部变量引用${变量名} 4、实现jsonPath参数化 5、支持跳过用例和重跑用例 6、支持响应断言、code码断言等断言方式 7、yaml维护测试用例 本框架使用者只需要维护yaml用例文件即可,不需要改动任何...

    RobotFramework用法总结.pdf

    (1)加载外部⽂件 Library:加载测试库,主要是[PYTHON⽬录]\Lib\site-packages⾥的测试库。具体操作可查看博⽂下⽅的""。 Resource:加载资源,主要是你⼯程相关的资源⽂件。具体操作可查看博⽂下⽅的""。 ...

    用于插入粘性元素的 Python 代码给定以Abaqus inp 文件格式 定义的骨骼和损坏元素

    该程序是在基于 UNIX 的系统上使用 Python v2.9.7 构建的,因为 UNIX 在以只读方式使用时如何将多个进程之间的全局变量作为共享内存处理。尽管该程序将在基于 WINDOWS 的计算机上运行,​​但 WINDOWS 系统上进程的...

    Python 麻雀搜索算法(SSA)优化函数示例代码 matplotlib可视化收敛曲线

    这些角色在不同的状态下执行不同的搜索策略,从而实现全局和局部的优化。 如何运行: 1. 安装所需的依赖库: pip install numpy matplotlib 2. 运行主程序 `main.py`: python main.py 3. 程序会输出最优值和最优...

    Python的简单接口自动化测试源代码

    这个接口自动化代码适用于接口数量不是太多的情况下使用的,数据的关联目前只添加token,如何有其他的关联参数,可以依葫芦画瓢在全局变量(def setup)中添加即可。

    征服Python全栈面试:掌握这20个问题,助你脱颖而出!.zip

    内容关键词:面试题、答案、列表与元组、异常处理、全局变量、局部变量、MVC、Git与GitHub区别、继承实现、生成器与迭代器、多线程实现、RESTful API定义、拷贝实现、装饰器链、事务管理、单元测试、闭包概念、...

    Python核心编程第二版

     11.8.1 全局变量与局部变量   11.8.2 globa语句   11.8.3 作用域的数字   11.8.4 闭包   11.8.5 作用域和lambda   11.8.6 变量作用域和名称空间   11.9 *递归   11.10 生成器   11.10.1 ...

    python基础2.0版(5)— 函数第一部分

    局部变量和全局变量的效率测试 思维导图 一、函数的基本概念 1.函数用法和底层分析 函数是可更用的程序代码块。函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。一致性指的是,只要修改函数代码,则所有...

    python入门到高级全栈工程师培训 第3期 附课件代码

    02 全局变量与局部变量 03 风湿理论之函数即变量 04 函数递归 05 函数递归补充 第16章 01 上节课回顾 02 函数作用域 03 函数作用域补充 04 匿名函数 05 函数式编程介绍 06 函数式编程尾递归调用优化 07 map函数 08...

    python cookbook(第3版)

    12.9 Python的全局锁问题 12.10 定义一个Actor任务 12.11 实现消息发布/订阅模型 12.12 使用生成器代替线程 12.13 多个线程队列轮询 12.14 在Unix系统上面启动守护进程 第十三章:脚本编程与系统管理 13.1 ...

    2020.3.19 python笔记

    文章目录函数也是对象变量的作用域(全局变量和局部变量)局部变量和全局变量效率测试参数传递传递不可变对象的引用参数的传递传递可变对象的引用传递不可变对象的引用浅拷贝和深拷贝传递不可变对象是浅拷贝参数的几...

    Python核心编程第二版(ok)

     11.8.1 全局变量与局部变量   11.8.2 globa语句   11.8.3 作用域的数字   11.8.4 闭包   11.8.5 作用域和lambda   11.8.6 变量作用域和名称空间   11.9 递归   11.10 生成器   11.10.1 ...

Global site tag (gtag.js) - Google Analytics