千家信息网

python global如何创建及修改

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章将为大家详细讲解有关python global如何创建及修改,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、global在函数内创建全局变量
千家信息网最后更新 2025年01月16日python global如何创建及修改

这篇文章将为大家详细讲解有关python global如何创建及修改,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1、global在函数内创建全局变量,相当于在文件内创建全局变量。

2、修改函数内的全局变量。由于函数中直接对全局变量进行分配/修改,因此被视为创建新的局部变量。

当然,可以通过索引定位全局变量中的元素进行修改。

实例

global 变量1, 变量2, …
变量1 = 赋值数据

# 错误示范
期望修改的全局变量1 = 数据 # python 认为创建了一个局部变量:变量1。

# 正确示范
global 期望修改的全局变量1 # 先告诉 python 这个变量在这个局部也是当做全局变量看。
期望修改的全局变量1 = 数据

内容扩展:

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:0string value:aaaamap value:{'aaa': '111', 'bbb': '222', 'ccc': '333', 'ddd': '444'}list value:['a', 'b', 'c']g_nVal src:0g_nVal dst:1==== print all bGlobal = False value =====int value:1string value:aaaabmap value:{'aaa': 'aaa__aaaab', 'bbb': 'bbb__aaaab', 'ccc': 'ccc__aaaab', 'ddd': 'ddd__aaaab'}list value:['a', 'b', 'c', '1']g_nVal src:1g_nVal dst:2==== print all bGlobal = True value =====int value:2string value:aaaabbmap value:{'aaa': 'aaa__aaaabb', 'bbb': 'bbb__aaaabb', 'ccc': 'ccc__aaaabb', 'ddd': 'ddd__aaaabb'}list value:['a', 'b', 'c', '1', '1']

关于python global如何创建及修改就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0