博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 变量引用
阅读量:4602 次
发布时间:2019-06-09

本文共 552 字,大约阅读时间需要 1 分钟。

遇到一个尴尬事情:

Python 我在方法外定义了一个变量,在方法内引用时候,默认是不引用外部的那个变量的,而是重新定义了一个。为此,温故了一次 Python 的两个关键字 nonlocal 和 global 。

 

 

这里方法 test 内的 a 变量相当于重新定义了一个 变量,这个变量跟 最外面的 a变量一点关系都没有呀~

如果想要在 def 方法内给 最外面的 a变量赋值怎么办?

当当当当 ··· global 就来了。

有点类似于方法传参,也优点类似于变量引用。反正就是重新引用了一下最外部的 a变量

 

 

 

没有引用的时候,所有变量虽然同名,但都是单独定义和使用的:

 

 

 

还有一个 声明变量的方法 nonlocal

使 本该作为内部函数的局部变量绑定到外部函数命名空间从而变成外部函数的局部变量。

 

 

 

nonlocal  适用于在局部函数 中 的局部函数 】

如果 nonlocal  不是在局部函数 中 的局部函数

会报错 - no binding for nonlocal 'a' found

 

 

 

总结 nonlocal 是绑定 最接近 本机函数的外部函数(非全局)的局部变量

global 是绑定的全局变量

 

转载于:https://www.cnblogs.com/wgy1/p/11497830.html

你可能感兴趣的文章
让你的WPF程序在Win7下呈现Win8风格主题
查看>>
构建Docker Compose服务堆栈
查看>>
浮点数内存如何存储的
查看>>
JsonCpp 的使用
查看>>
问题账户需求分析
查看>>
hp 服务器通过串口重定向功能的使用
查看>>
此博客不再发表对自己私事的看法
查看>>
导致Asp.Net站点重启的10个原因
查看>>
【PMP】Head First PMP 学习笔记 第一章 引言
查看>>
抓住云机遇编排工作 搞定复杂IT工作流
查看>>
MYSQL的longtext字段能放多少数据?
查看>>
MTK 平台上如何给 camera 添加一种 preview size
查看>>
云计算最大难处
查看>>
mysql定时备份自动上传
查看>>
17岁时少年决定把海洋洗干净,现在21岁的他做到了
查看>>
《写给大忙人看的java se 8》笔记
查看>>
倒计时:计算时间差
查看>>
Linux/windows P2V VMWare ESXi
查看>>
Windows XP倒计时到底意味着什么?
查看>>
运维工程师在干什么学些什么?【致菜鸟】
查看>>