python global和nonlocal_python global和nonlocal用法解析

2023-11-16

python global和nonlocal用法解析

这篇文章主要介绍了python global和nonlocal用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

◆global和nonlocal是Python的两个重要变量作用域关键字

1.global用在全局变量,应用场景:

变量定义在函数外部的时候,如果函数里面想改变这个全局变量的值,需要在当前的引用函数里面重新定义一个变量 并用关键字global修饰。

例如:

a=1

def b():

a+=1

print(a)

b()

用ide写完这段代码的时候,还没运行就会报红线提示错误,运行之后产生错误,错误内容为:UnboundLocalError: local variable 'a' referenced before assignment。

解决方案:函数中重新声明变量并加修饰符global修改:

#!/usr/bin/env python

# encoding: utf-8

a=1

def b():

global a

a+=1

print(a)

b()

2.nonlocal非全局变量,应用场景:

在函数的函数里面使用函数的变量。表达的可能有点混乱,看代码就知道了

#!/usr/bin/env python

# encoding: utf-8

def b():

num2=1

def c():

nonlocal num2#为了修改非全局变量

num2+=2

print(num2)

return c

b()()

3.综合应用

#!/usr/bin/env python

# encoding: utf-8

gcount = 0

def global_test():

global gcount

s=0

def g():

nonlocal s

s+=2

print(s)

return g

gcount+=1

print (gcount)

global_test()()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2020-02-03

python引用变量的顺序: 当前作用域局部变量-&

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

python global和nonlocal_python global和nonlocal用法解析 的相关文章

  • 企业架构

    一 架构能力建设和架构治理 为确保架构功能在企业中能够被成功运用 企业需要通过建立适当的组织结构 流程 角色 责任和技能来实现其自身的企业架构能力 这正是TOGAF的架构能力框架 Architecture Capability Framew
  • 基于数据驱动的电动车电池数据分析(一)

    基于数据驱动的电动车电池数据分析 一 欢迎关注笔者的微信公众号 笔者过去一年多的时间都在国内一家头部新能源企业实习 主要参与一些数据分析和平台研发的工作 在工作中积累了一些数据分析的经验 其中新能源领域比较多的是一些化工生产 智能制造方面的
  • CMAKE——set()函数及常用变量名

    set 将一个 CMAKE 变量设置为给定值 set
  • PAT乙级 1029旧键盘 python

    题目 思路 将输入与输出逐位对比 将不相等的记录下来即可 代码 input input print input bad key 记录坏掉的键盘 upper 将所有小写字符转为大写 lower 将所有大写转为小写 print position
  • wait notify正确使用方式

    wait notify正确使用方式 假设 当线程 Thread03 在1 100中找出77并输出后 Thread01 输出所有1 100中的奇数 当线程 Thread03 在1 100中找出88并输出后 Thread02 输出所有1 100
  • 使用expect实现scp远程复制文件

    expect安装 yum install y expect expect基本命令了解 spawn 交互程序开始后面跟命令或者指定程序 expect 获取匹配信息匹配成功则执行expect后面的程序动作 send exp send 用于发送指
  • 水仙花数的求解

    话不多说 直接给各位上小菜 package com znzz JavaTest public class FlowerTest 思路 水仙花数 指一个 n gt 3 n位正整数 其每位的数值的n次方之和等于本身 例如 153 1 3 5 3
  • 如何治理 Electron 版本淘宝直播应用崩溃?

    经过几个月的努力 基于Electron框架开发的新版淘宝直播推流软件终于上线了 随之而来的就是线上用户反馈的各种问题 其中最影响用户体验的当属应用崩溃问题了 当应用程序出现未 catch 的异常时就会发生崩溃 本文介绍了客户端应用崩溃的处理
  • UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd7 in position 2: invalid continuation byte问题

    报错提示如下 self disease wds i strip for i in open self disease path encoding UTF 8 if i strip File C Users luckyli anaconda3
  • 嵌入式学习笔记---VIM常用操作和命令

    嵌入式学习笔记 VIM常用操作和命令 写在前面 这里我使用的开发环境是Windows下的Cygwin软件 如果不想下载虚拟机什么的 用这个日常开发完全够 具体的下载安装教程网上一大把 可以参考其他博主 一些配置文件 1 定义 Cygwin是
  • Oracle 进程结构

    Oracle进程结构 进程是动态创建的 完成任务后就消亡 而程序是静态的实体 程序是可以复制 编辑的 进程强调的是执行过程 而程序仅仅是指令的有序集合 进程在内存中 程序在外存中 ORACLE分为用户进程和ORACLE进程 l 用户进程 当
  • 可以解释一下什么是补码吗?

    补码是一种用来表示二进制数的方法 也是计算机中常用的数值表示方式之一 在补码中 正数的二进制表示与原码相同 而负数的二进制表示则是将对应正数的二进制表示按位取反后加上1 例如 在8位补码中 3的二进制表示为11111101 对应的正数是00
  • 输入3个整数,按从小到大的顺序输出

    include
  • mysql每秒最多能插入多少条数据 ? 死磕性能压测

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 前段时间搞优化 最后瓶颈发现都在数据库单点上 问DBA 给我的写入答案是在1W 机械硬盘 左右 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高
  • MobileNet V3 网络结构的原理与 Tensorflow2.0 实现

    文章目录 介绍 MobileNet V3 的创新 1 SE模块的加入 2 修改尾部结构 3 修改通道数量 4 改变激活函数 SE 模块中 BottleNeck 模块中 MobileNet V3 网络结构 1 MobileNet V3 Lar
  • transformer包中的bert预训练模型的调用详解

    文章目录 Bert调用 安装transformers BertTokenizer BertModel Bert调用 2018年的10月11日 Google发布的论文 Pre training of Deep Bidirectional Tr
  • JS获取URL中的Query参数

    需求描述 获取 URL 中的 Query 参数 例如 https www example com test html a param1 b param2 代码片段 实现一 使用URLSearchParams对象 兼容性见Can I use
  • ov5640 PLL时钟、图像大小、帧率寄存器配置

    不同像素和时钟的ov5640摄像头寄存器配置方法 配置摄像头寄存器 网上没有明说的 参考正点原子的文档进行介绍 像素大小配置 0x3801 0x3807 设置ISP大小 0 0 2631 1951 0x3808 0x380B 设置输出图像大
  • 经验分享-前端与后端的接口、HTML分离

    在WEB项目中 前后端不分离多人开放效率还不及一个人开发效率来的高 今天分享一个概念 后端写一个同一个的接口 此接口用于前端根据自己放在服务器上的文件地址生成 但访问处此地址的时候加载相关的一个总的JS用于加载其他的JS CSS HTML文

随机推荐

  • 计算机中丢失msvcp140.dll无法启动此程序怎么办(修复教程)

    DLL是Dynamic Link Library的缩写 意为动态链接库 dll文件是电脑系统及软件运行的重要文件 电脑如果丢失dll文件 那么很多软件跟游戏都是无法运行的 msvcp140 dll丢失这个问题就有很多小伙伴遇到 小编今天就分
  • JS 实现body背景颜色切换

    使用JS点击按钮 实现背景颜色的切换 效果如下 代码实现
  • 使用 React 18 流式传输 SSR 的指南

    React 18 引入了许多令人兴奋的变化和特性 这可能是您已经听说过很多的事情 并且有充分的理由 尽管稍微不那么引人注目 但在 React SSR 架构中也有一些非常令人兴奋的发展 要了解 React 18 带来的突破 必须查看整个时间线
  • 参加2013年大连软件开发者大会

    昨天参加了东软和QClub合办的2013大连软件开发者大会 在此总结一下 这次活动是东软的攻城狮俱乐部主办的 本来是想要向大连的广大程序员朋友征集讲师 但是大家的响应不是特别积极 所以就改成了找讲师的形式 我报了个名 然后通过InfoQ找到
  • 任务6 学生宿舍信息管理系统

    系列文章 任务6 学生宿舍信息管理系统 已知宿舍的信息包括 宿舍楼号 宿舍号 床位号 对应床位号的学生学号 楼长姓名等 设计程序能实现以下功能 1 宿舍信息录入 可随时增加宿舍信息到数据文件中 2 宿舍信息浏览 宿舍的信息输出到屏幕 3 查
  • 【NoSQL数据库技术与应用】【课本代码】【课后题答案】【暂不更新了】

    文章目录 一 课本代码 第1章 初识NoSQL 第2章 文档存储数据库MongoDB 第3章 MongoDB数据库操作 3 8 使用Java操作MongoDB 1 搭建JAVA环境 1 Java配置 2 Maven配置 3 基于Java A
  • nginx进程监控(Keepalived)

    bin bash nginx 家目录 NG HOME xxx xxx nginx Keepalived家目录 HA HOME xxx xxx keepalived RE pid of nginx wc l if RE eq 0 then N
  • 语义熵:QoE-Aware Resource Allocation for Semantic Communication Networks

    目录 论文简介 语义熵的意义 语义熵的定义 论文简介 作者 Lei Yan Zhijin Qin Rui Zhang Yongzhao Li Geoffrey Ye Li 发表期刊or会议 GLOBECOM 发表时间 2022 12 语义熵
  • Python Selenium搭建UI自动化测试框架

    自动化测试是软件测试中非常重要的一部分 可以提高测试效率和测试覆盖率 在UI自动化测试中 Selenium是非常流行的工具 本文将介绍如何使用Python和Selenium搭建UI自动化测试框架 一 环境准备 在开始搭建UI自动化测试框架之
  • phpmyadmin版本对应的各php版本

    phpmyadmin支持的php版本如下 phpmyadmin4 0 PHP5 2 PHP5 3 PHP5 4 PHP5 5 PHP5 6 PHP7 0 PHP7 1 PHP7 2 PHP7 3 PHP7 4 phpmyadmin4 4 P
  • linux 之 内核实时性

    1 linux 实时性方案 单内核方案 主线软实时内核 打PREEMPT RT补丁 使内核成为硬实时内核 双内核方案 主线普通内核 实时内核 例如 RT linux RTAI Xenomai 2 实时性和抢占性 实时性 实时分为硬实时和软实
  • 项目实现读写分离操作(mysql)

    读写分离 1 问题说明 2 读写分离 Master 主库 数据同步 gt Slave 从库 Mysql主从复制 mysql主从复制 介绍 mysql主从复制是一个异步的复制过程 底层是基于mysql数据库自带的二进制日志功能 就是一台或多台
  • GNU 链接脚本LDS介绍

    前言 程序的从C语言代码变成可以在目标机器上执行额文件 可以分为如下步骤 编译 预编译 将宏定义等转义编译 将C语言变成目标文件 o档案 编译 汇编 将预编译过后的目标变为目标文件 链接 合并多个目标文件 o a 等为最终的可执行文件 LD
  • 51智能小车小车之跟随(超声波的使用)(三)

    智能车的另外一种模式 跟随模式 会跟着前面的障碍物走 此模式利用两个模块 超声波模块和跟随模块 模块的使用 中间是超声波模块 两边是跟随模块 超声波控制前进后退 利用超声波测距 如果距离小于一个值小车前进 否则后退 跟随模块控制左右转动 如
  • Resulting document after update is larger than 16777216

    依赖包是 问题原因 更新文档后data的数据量太大了 超过了16M 解决办法 1 优化自己的mongo代码逻辑 取消文档中的集合存储已文档的方式存储 2 修改mongo的源码 改变源代码并从源代码构建自己的mongo版本 Note the
  • 移动端使用clipboard插件自动复制内容

    最近做一个微信商城遇到点击复制订单号 银行卡号 手机号等等一系列点击复制操作 用到了clipboard插件 支持android ios部分支持 可以通过执行ClipboardJS isSupported 来判断浏览器是否支持clipboar
  • Python已经pip安装某模块后仍然报错ImportError: No module named ***

    uwsgi no request plugin is loaded you will not be able to manage requests Problem Operational MODE preforking threaded n
  • 深富策略:权重调整拖累指数 下周操作要谨慎

    昨日沪深两市指数整体呈现震荡分化格局 上证指数与深证成指全天低开低走 弱势整理格局明显 而创业板指低开高走 反弹走势明显 但尾盘受权重回落影响 最终微幅收涨 行业概念上看 盐湖提锂 能源金属 光伏设备 游戏 化肥行业 元宇宙概念 电子竞技
  • 综合资源网大全

    特别分類 全部 網賺資源 實用 生活 有聲 電子書 辦公 職場 小學初中 公考考研等 幼兒資源 中醫相關 投資理财 情感約會 高中網課 小吃美食 風水相關 seo教程資源 網頁相關資源 福利共享資源 日賺100 3月賺10W CPA空手套白
  • python global和nonlocal_python global和nonlocal用法解析

    python global和nonlocal用法解析 这篇文章主要介绍了python global和nonlocal用法解析 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习价值 需要的朋友可以参考下 global和n