Python关键字之global与nonlocal
作者:笨鸟先fly 发布时间:2023-12-09 13:34:18
标签:Python,关键字,global,nonlocal
Python关键字 global与nonlocal
global
def test():
#1函数内如果没定义x,则x默认为全局变量
print(x) # 输出 global v
#2函数内如果定义x,则x为局部变量
x = 'local v' # 局部变量
print(x) # 输出 local v
x = "global v" # 全局变量
如何在函数内修改全局变量呢?[利用关键字global]
def test():
#在函数内先声明全局变量,
global x # 即x = "global v",注意global修饰变量时不能直接赋值,如 global x =‘abc' 报错!
# 修改全局变量
x = 'modified global v'
x = "global v" # 全局变量
print(x) # global v
test()
print(x) # modified global v
nonloacl
nonlocal只能在嵌套函数中使用,用于标识嵌套函数中的变量是包含该嵌套函数的函数中的同名变量,在嵌套函数中修改变量会影响函数中的变量。
def func(): # 函数
x = 'loval v'
def ifunc(): # 嵌套函数
nonlocal x # x = 'loval v'
如果在函数中使用global修饰了变量,那么在嵌套函数中用nonlocal修饰同名变量会发生报错,因为nonlocal表示该变量在函数中已经定义,但检查时因为同名变量被global修饰为全局变量,所以不存在同名的局部变量,从而导致错误
x = 'global v' # 全局变量
def func(): # 函数
global x
def ifunc(): # 嵌套函数
nonlocal x # 报错!!
来源:https://blog.csdn.net/weixin_44139001/article/details/123295188


猜你喜欢
- 一、前言我们在使用pycharm写代码时可能出现过下面这种情况,不小心点到了ignore ....:这样会导致整个代码都没有错误提示了,类似
- 按照固定的字符,拆分已有的字符串split(sep, n, expand = False):sep:用于分割的字符串n:分割为多少列expa
- 简介深度学习需要熟悉使用一个框架,本人选择了TensorFlow,一边学习一边做项目,下面简要介绍TensorFlow中的基本常量、变量和运
- 一、图像处理1. 灰度图像灰度图像矩阵元素的取值范围通常为 [0,255] 。因此其数据类型一般为8位无符号整数的(in
- 文件结构html_downloader.py - 下载网页html内容#!/usr/bin/python# -*- coding: UTF-
- 例如torch.nn.ReLU(inplace=True)inplace=True表示进行原地操作,对上一层传递下来的tensor直接进行修
- 迭代器迭代器协议对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么返回一个异常来终止本次迭代。(只能往前走,不能往后退!)
- 1 简介关键词抽取就是从文本里面把跟这篇文档意义最相关的一些词抽取出来。这个可以追溯到文献检索初期,当时还不支持全文搜索的时候,关键词就可以
- 近来有客户要求用table显示一大串数据,由于滚动后就看不到表头,很不方便,所以想到这个效果。上次做table排序对table有了一些了解,
- 当您想要描述一个链接的时候,工具提示(Tooltip)就显得非常有用。工具提示(Tooltip)插件是受 Jason Frame 写的 jQ
- <P><HTML><HEAD><TITLE>javascriptboy</TITLE&
- 在pandas中创建category类型数据的几种方法之详细攻略 T1、直接创建 category类型数据可知,在category
- 总经一下前段时间用于的jQuery方法:find及children。需要的朋友可以参考下。首先看看英文解释吧: children方法:fin
- 一、安装redis 是一个 Key-Value 数据库Value 支持 string(字符串),list(列表),set(集合),zset(
- 索引相关1. 查询(或更新,删除,可以转换为查询)没有用到索引这是最基础的步骤,需要对sql执行explain查看执行计划中是否用到了索引,
- 引言在前端开发的工作当中,使用 npm run dev 的命令启动本地开发环境,是再正常不过的事了。那么,当输入完类似 npm run xx
- 前言需要从数据库检索某些符合要求的数据,我们很容易写出 Select A B C FROM T WHERE ID = XX 这样
- golang中GOPATH的简单理解 1、为什么要配置GOPATH配置GOPATH的用意是为了方便项目的部署和构建,以及可以直接使用go g
- 前言题目: Survey of Personalization Techniques for FederatedLearning会议: 20
- 在django项目根目录位置创建scrapy项目,django_12是django项目,ABCkg是scrapy爬虫项目,app1是djan