【Python】全局变量详解二(修改全局变量值、定义位置和代码结构、命名建议)
全局变量是在函数外部定义的变量(没有定义在某一个函数内),所有函数内部都可以使用这个变量。
提示:全局变量是可变的,在其他开发语言中,大多是不推荐使用全局变量的,因为可变范围太大,会导致程序后期不好维护。
一、在函数内部修改全局变量的值
如果在函数中需要修改全局变量,需要使用global关键字进行声明。
global关键字会告诉解释器后面的变量是一个全局变量,再使用赋值语句时,就不会创建局部变量
代码体验:
# 定义一个全局变量
num = 99def demo1():# 希望修改全局变量的值 -- 使用global声明一下变量即可# global关键字会告诉解释器后面的变量是一个全局变量# 再使用赋值语句时,就不会创建局部变量global numnum = 10print('demo1 ===> %d' % num)def demo2():print('demo2 ===> %d' % num)demo1()
demo2()
执行结果:
二、全局变量定义的位置和代码结构
如果在开发中我们使用到了全局变量,应该把全局变量打在代码的什么位置。
为了保证所有的数据都能够正确使用到全局变量,应该将全局变量定义在其他函数的上方。
代码体验1:
# 定义一个全局变量
num = 99def demo1():print(' %d' % num)print('%s' % title)# 再定义一个全局变量
title = 'Python自学网'demo1()
执行结果:
代码体验2:
# 定义一个全局变量
num = 99def demo1():print(' %d' % num)print('%s' % title)print('%s' % name)# 再定义一个全局变量
title = 'Python自学网'demo1()# 再定义一个全局变量
name = 'lily'
执行结果:报错
注意:由于全局变量name是在调用函数之后才定义的,在执行函数时,变量还没有定义,所以程序会报错。
代码体验3:正确位置
# 定义一个全局变量
num = 99
# 再定义一个全局变量
title = 'Python自学网'
# 再定义一个全局变量
name = 'lily'def demo1():print(' %d' % num)print('%s' % title)print('%s' % name)demo1()
执行结果:
代码结构示意图如下:
三、全局变量命名的建议
为了避免局部变量和全局变量出现混淆,在定义全局变量时,有些公司会有一些开发要求:如:
全局变量名前应该增加g_ 或者 gl_ 的前缀
提示:具体的要求格式,各公司要求可能会有些差异
代码体验:
# 定义一个全局变量
gl_num = 99
# 再定义一个全局变量
gl_title = 'Python自学网'
# 再定义一个全局变量
gl_name = 'lily'def demo1():# 如果局部变量的名字和全局变量的名字相同# PyCharm会在局部变量的下方显示一个灰色的虚线,提示我们修改一个名字num = 20print(' %d' % num)print('%s' % gl_title)print('%s' % gl_name)demo1()
小技巧:如何在修改全局变量名时,之前其他地方使用这个变量名同时被修改?
步骤:选中要被修改的名字 ----》 点击鼠标右键出现下图这个界面,鼠标悬浮在Refactor上 ---》点击Rename ------》在下一个界面上直接修改全局变量名 ------》 点击Refactor即可完成同步修改。
快速调出修改窗口:先须先选中要修改的名字 ----》 按住快捷键 Shift + F6
Python教程文章借鉴来源:http://www.wakey.com.cn/
【Python】全局变量详解二(修改全局变量值、定义位置和代码结构、命名建议)相关推荐
- Python 列表详解
Python 列表详解 什么是列表 列表的定义 列表的操作 访问列表元素 列表的切片 列表的相关运算 列表常用方法 更多内容,可以微信搜索[公][众][号][ 郑大钱呀],关注我们,一起学技术! 什么 ...
- 【python】详解multiprocessing多进程-Pool进程池模块(二)
[python]详解multiprocessing多进程-process模块(一) [python]详解multiprocessing多进程-Pool进程池模块(二) [python]详解multip ...
- python英语字典程序修改_详解如何修改python中字典的键和值
我们知道python中字典是无序的,它们都是通过hash去对应的.一般的如果我们需要修改字典的值,只需要直接覆盖即可,而修改字典的键,则需要使用字典自带的pop函数,示例如下: t = {} t['a ...
- python字典修改键所对应值_详解如何修改python中字典的键和值
我们知道python中字典是无序的,它们都是通过hash去对应的.一般的如果我们需要修改字典的值,只需要直接覆盖即可,而修改字典的键,则需要使用字典自带的pop函数,示例如下: t = {} t['a ...
- python多线程详解 Python 垃圾回收机制
文章目录 python多线程详解 一.线程介绍 什么是线程 为什么要使用多线程 总结起来,使用多线程编程具有如下几个优点: 二.线程实现 自定义线程 守护线程 主线程等待子线程结束 多线程共享全局变量 ...
- Python|SQL详解之DDL|DML|DQL|DCL|索引|视图、函数和过程|JSON类型|窗口函数|接入MySQL|清屏|正则表达式|executemany|语言基础50课:学习(14)
文章目录 系列目录 原项目地址 第41课:SQL详解之DDL 建库建表 删除表和修改表 第42课:SQL详解之DML insert操作 delete 操作 update 操作 完整的数据 第43课:S ...
- 07 Python数据类型详解
文章目录 一.整数类型(int)详解 1.1 整数的不同进制 1) 十进制形式 2) 二进制形式 3) 八进制形式 4) 十六进制形式 1.2 数字分隔符 1.3 相关方法 二.字符串类型(strin ...
- Python数据分析详解
Python数据分析详解 数据分析概述 python在数据分析方面有哪些优势 Python不受数据规模的约束,能够处理大规模数据. Python的sklearn库提供了丰富的数据挖掘和人工智能方法,为 ...
- from mysql partition select_爬虫(九十九)mysql详解二
**mysql中字段的常见类型: ** 二进制位 bit(长度) tinyint[(长度)] [有无符号unsigned] [位数低于长度时候是否填充零zerofill] 有符号表示范围-128 ~ ...
最新文章
- Design Pattern - Bridge(C#)
- 部分知名公司的网址 合集
- html四个标签,基本的 HTML 标签 - 四个实例
- 递归和尾递归的区别和原理
- JavaScript二进制、八进制和十六进制数值
- php判断ajax传入,利用PHP判断是否为AJAX请求代码
- 一张图学会python应用到excel-Python | 编写一个简单的Excel处理脚本
- like效率 regexp_Oracle中REGEXP_LIKE与LIKE的区别
- 假设检验 python_数据清洗、假设检验
- 汇编语言指令是机器指令的符号化
- SECS\GEM RMS系统OEE定义
- 大型数据库Oracle基础练习
- 我在阿里三年的运营经都在这儿了
- 一图读懂DV、OV、EV三种SSL证书之间的区别
- 身份验证绕过漏洞分析
- 微信群如何引流最快?微信群裂变引流工具首选这款
- 前端实现搜索关键字高亮功能:
- 历代华为Mate系列主要参数对比,更新于2020年11月
- SecureCRT 服务器链接信息密码忘记找回
- mongrel cluster