python3关于标识符global的理解

2023-11-09

我有个需求是在两个类(在同一个.py模块中)之间,设定一个全局变量供这个两个类来访问。
我就打算使用global来实现。
但我对于global的用法不是很熟,在查找相关资料后实现了自己的需求,所以特此记录下自己对于python3global的理解。
参阅了这篇大佬的文章


在一个代码块中,为参数加上一个标识符global,则代表这个参数是在这个代码块范围内中的一个全局变量
并且这个变量在之前的赋值将会延续到这个代码块中。
举个例子:

a = 5
def fu():
    global a
    print("函数里没有对a赋值,只是把他申明为函数中的'全局变量'。a的值为:",a)
fu()

在这里插入图片描述


如果此时我对函数中的变量赋值,毫无疑问在函数中变量的值肯定会发生改变。
但是当语句跳出了该函数,在函数外这个值会维持在函数中发生的改变吗?

答案是会的。

验证如下:

a = 5
def fu():
    global a
    a = 6
    print("在函数中改变了a的值,在函数中a的值为:",a)
fu()
print("在函数外a的值为:",a)

在这里插入图片描述
说明在一个代码块中给变量加上了标识符global,确实会让这个变量成为一个全局变量,如果在这个代码块中对于这个变量进行更改,则这个改变会维持在整个.py模块中(而不仅仅只是在这个代码块中)。


并且在这个代码块的范围中,(不是说在代码块的外部不可以提前申明这个变量)在申明这个参数为全局变量之前,不能对这个变量进行赋值。(否则就会报name ‘b’ is assigned to before global declaration(此变量在global声明前已经被赋值的错))

如下:
在这里插入图片描述


自己项目中的需求详细描述:自己要对一个变量赋值,但是这个变量在另一个类中之后也会频繁调用。
那么在这个类里面就在使用这个变量前,先对这个变量进行global全局申明。
问题即解决。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python3关于标识符global的理解 的相关文章

  • python基础----08-----json、pyecharts模块介绍以及折线图、地图、柱状图的绘制

    一 python变量和json数据的相互转化 json就是 一种在各个编程语言中流通的数据格式 负责不同编程语言中的数据传递和交互 类似于 国际通用语言 英语 import json if name main 1 将python变量转成js
  • python菜鸟学习Day1(数据类型)

    第一节 数据类型 int 整型 python2中有int long python3中只有int float 浮点型 string 字符串型 bool 布尔型 变量命名 字母 数字 下划线 数据不能开头 大小写敏感 不能和系统关键字 函数名
  • 苏宁图书爬虫第一版

    最近一直在忙于工作 当我知道这些都是借口 毕竟某些博主大佬深夜还在更新订阅号更新微博 或许这就是自制力的差距吧 不啰嗦了 今天要写的主要是一篇关于如何爬取 苏宁图书 当然只是半成品 但是大部分问题都已经解决 在这里记录一下发生过的问题 以免
  • Python学习-----文件操作(读写定位篇)

    目录 前言 1 打开文件 open 关闭文件 close 2 文件的读取 文件变量名 f 1 整体读取 read 2 读取一行 readline 3 读取多行 readlines 3 文件的写入 文件变量名f write 4 判断文件的可读
  • C 、C++ 、Java、Python、JavaScript数据类型对比介绍

    C C Java Python JavaScript数据类型对比介绍 C C Java Python JavaScript数据类型对比如下 C语言 静态类型语言 需要在声明变量时指定类型 基本数据类型包括 整型 int 通常分为有符号 si
  • python作业记录1_字典运用的实例

    帮朋友做了几个作业题目 记录一下 一 某人到超市购买了以下物品 先需要对货物金额进行统计 清单如下图所示 牛奶 65 面包 15 可乐 39 饼干 45 糖果 24 水果 35 8 要求 1 使用字典保存以上数据 2 可乐的金额统计出错 请
  • Python的PyYAML模块详解

    文章目录 简介 安装 简单安装 从源码安装 最常被问到的问题 使用详解 加载YAML 转储YAML 构造 表示和解析 YAML语法 文档 块序列 块映射 流集合 标量 别名 标签 YAML标签和Python3 对象 字符串转换 名称和模块
  • python实现链表的旋转

    python实现链表的旋转 链表是一种常用的数据结构 实现起来也不难 但当我们需要将链表中的元素旋转时 就会有一些困难 本文介绍基于python语言的链表旋转实现方法 实现思路 链表旋转可以通过移动节点的位置来实现 我们可以找到需要旋转的位
  • python自动化课程笔记(十二)闭包、装饰器

    闭包 闭包就是能够读取其他函数内部变量的函数 例如在javascript中 只有函数内部的子函数才能读取局部变量 所以闭包可以理解成 定义在一个函数内部的函数 在本质上 闭包是将函数内部和函数外部连接起来的桥梁 闭包 def test nu
  • Python —— 第四部分 面向对象程序设计

    第四部分 面向对象程序设计 4 1 基本概念 4 2 类的定义与使用 4 3 self 参数 4 4 类成员与实例成员 4 4 1 修改属性的值 4 5 成员 4 6 方法 4 7 继承机制 4 7 1 子类的方法 init 4 7 2 给
  • Python入门_使用while循环计算1-100之间偶数和

    案例 计算1 100之间所有偶数的和 i 1 定义一个变量sum为0 用来存放和 sum 0 while i lt 100 每次sum和i相加 if i 2 0 sum i i 1 执行完之后 打印sum的值 print 1 100之间偶数
  • Python中if __name__ == '__main__'的使用方法

    转 如何简单地理解Python中的if name main 2017年09月09日 22 35 42 Locutus 阅读数 219985 1 摘要 通俗的理解 name main 假如你叫小明 py 在朋友眼中 你是小明 name 小明
  • python基础----03-----if语句、while、for循环、range语句、continue和break

    一 布尔类型和比较运算符 1 1 布尔类型和比较运算符 定义变量存储布尔类型数据 变量名称 布尔类型字面量 布尔类型不仅可以自行定义同时也可以通过计算的来 也就是使用比较运算符进行比较运算得到布尔类型的结果 在C C 中 比较运算符称之为关
  • Python学习(三)条件运算

    Python学习 三 条件运算 之前讲解了Python中的一些基本语法 今天我们来讲一下Python中的条件运算 一 条件运算符 在Python中我们可以用条件运算符进行最基本的条件判断 基本语法为 语句1 if 条件判断式 else 语句
  • 语法6:raise - 触发异常

    目录 1 基础格式 2 raise 单独语句 3 raise class 4 raise instance 5 raise from 6 try raise 实现循环跳出
  • Mac安装python3

    可以在命令行中输入 brew install python3 但是出现了error 如下所示 tar Error opening archive Failed to open Users my Library Caches Homebrew
  • python中sqlite3对数据库的增删改查

    1 python API的介绍 1 connection 数据库连接对象 连接对象 建立python客户端与数据库的网络连接 创建方法 sqlite3 connect 参数 2 cursor 游标对象 2 增删改查的流程 select语句
  • python-测试代码

    目录 介绍 测试函数 单元测试和测试用例 可通过的测试 不能通过的测试 测试未通过时怎么办 添加新测试 测试类 各种断言方法 一个要测试的类 测试AnonymousSurvey类 方法setUp 介绍 在本章中你会学习如何使用Python模
  • 【PyCharm警告】选择性忽略 PEP8 警告

    提示 Class names should use CamelCase convention Inspection info This inspection checks the PEP8naming conventions 为什么 从命名
  • 将本地的代码上传到github完整版本

    1 注册github账号 2 安装git https git for windows github io 3 进入Github首页 点击New repository新建一个项目 Public Private 仓库权限 公开共享 私有或指定合

随机推荐

  • 数据库之桥

    前言 通俗地讲 就是如何使用 工具 eclipse 连接到 你的数据库 JDBC 简介 全称为 Java Database Connectivity 可以使用Java语言去操作数据库 通过数据库提供的Connector作为支持 对于不同的语
  • MyBatis中自动生成主键

    MyBatis中自动生成主键 详细 Mybatis 配置文件配置useGeneratedKeys 参数只针对 insert 语句生效 默认为 false 在INSERT语句中 我们为可以自动生成 auto generated 主键的列 ST
  • Maven镜像(mirror)

    使用镜像代替中央仓库 国内开发人员由于网络原因 直接从中央仓库下载构件时 速度较慢或不稳定 我们通常会使用中央仓库的国内镜像站来解决该问题 配置 Maven 镜像的方法也非常的简单 我们只需要在 Maven 安装目录中 setting xm
  • 如何更改git提交代码的用户名称

    桌面单击鼠标右键 点击Git Bash Here 出现弹窗 修改git提交者的名称 git config global user name 要修改的名称 查看git提交者的名称 git config user name
  • Python: 生成带用户昵称的头像

    Python 生成带用户昵称的头像 需求 新建用户后 根据用户输入的昵称生成图片 例 注册 钉钉 用户后 头像根据输入的名字生成 开发环境 Windows 10 Python 3 8 Pillow 8 1 2 实现 蛇皮皮蛋 Python创
  • 【千律】C++基础:函数的重载

    include
  • 易游网吧无盘服务器安装,易游无盘安装教程

    易游无盘安装教程 2021 02 19 00 59 49 简介 php去除nbsp的方法 首先创建一个PHP代码示例文件 然后通过 preg replace s nbsp xc2 xa0 strip tags val 方法去除所有nbsp即
  • Sublime Text3 SublimeREPL python

    首先什么是REPL A Read Eval Print Loop REPL is available both as a standalone program and easily includable in other programs
  • qt之利用lineEdit设置密码样式

    参考博客 https blog csdn net u012288722 article details 77850974 主要参考以上大神博客实现如下 可能需要加上头文件 include
  • v8学习---添加js全局函数

    v8学习 添加js全局函数 标签 v8 2013 11 10 10 11 951人阅读 评论 0 收藏 举报 分类 v8 12 版权声明 本文为博主原创文章 未经博主允许不得转载 cpp view plain copy include
  • URL 链接中 井号#、问号?、连接符& 分别有什么作用?

    井号 表示网页中的一个位置 被称之为锚点 常用于某个网页间不同位置的跳转 简单的说就是在一个网页中 URL 不变的情况下 通过添加 buy 的字符在 URL 最后可以跳转到当前网页中已经定义好的锚点 id buy 位置 同样 的改变也会增加
  • APPIcon生成

    有两种生成方法 比较常用 一种是设计师常用的 在线生成图标 https icon wuruihong com 支持 jpg png psd 文件 可以生成圆角 可以自定义大小 生成后可以预览 模拟手机屏幕的效果预览 第二种就是终端生成 利用
  • PyTorch&CUDA安装过程及测试

    PyTorch CUDA安装过程及测试 1 准备工作 1 1 Anaconda NVDIA驱动 之前安装过了Anaconda和NVIDIA驱动 所以直接跳过这几步 打开NVIDIA控制面板 帮助 gt 系统信息 gt 组件 查看自己的CUD
  • 亲!了解一下开源许可协议呗?

    哈喽 大家好 我是指北君 今天我来给大家简单讲讲开源许可协议 只有了解开源许可协议 才能合法合理地使用各种开源软件 并保护自己的合法权益 一 开源许可协议的目标 开源许可协议 也称 许可证 它是一些开源支持组织为了激励和保护开源软件开发者的
  • cortex M3/M4内核 特权级与用户级详解

    一 程序运行为什么要有用户级与特权级区分 用户级和特权级的实现是为了给存储器提供一种保护机制 让用户代码不能访问特定的存储区域 只有特权级级代码才能有权限访问特定的存储区域 防止用户代码或者应用代码意外或恶意访问操作系统的数据存储区域 一般
  • MySQL(17)MySQL数据类型:日期和时间类型

    日期和时间类型 MySQL 中有多处表示日期的数据类型 YEAR TIME DATE DTAETIME TIMESTAMP 当只记录年信息的时候 可以只使用 YEAR 类型 每一个类型都有合法的取值范围 当指定确定不合法的值时 系统将 零
  • discuz密码找回:忘记UCENTER创始人密码

    1 通过ftp工具连接您的虚拟主机在网站根目录uc目录下的子目录 data中找到文件config inc php 注意 不是跟目录data 是uc server data 2 通过代码编辑器打开它 找到类似以下代码 define UC FO
  • win下处理器组概念

    微软官方文档 https docs microsoft com en us windows win32 procthread processor groups 译文如下 64位版本的Windows 7和Windows Server 2008
  • 字符串拆分--spilt()

    待补充
  • python3关于标识符global的理解

    我有个需求是在两个类 在同一个 py模块中 之间 设定一个全局变量供这个两个类来访问 我就打算使用global来实现 但我对于global的用法不是很熟 在查找相关资料后实现了自己的需求 所以特此记录下自己对于python3中global的