首页

文章

Python 中作用域与命名空间的问题?

发布网友 发布时间:2022-03-26 02:18

我来回答

2个回答

懂视网 时间:2022-03-26 06:39

在Python程序中创建、改变、查找变量名时,都是在一个保存变量名的空间中进行,而这个空间被称之为作用域。

  

  Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本shell,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程。

  

  

热心网友 时间:2022-03-26 03:47

i=2 这一句 是定义了一个局部变量i, 并赋值为2;  这个时候全局作用域的i会被屏蔽, 所以全局变量i是没有被修改的 所以结果是1;


访问全局变量时可以直接访问, 但是修改全局作用域的时候一定要在赋值之前,进行如下声明:

def f():

    global i


    i = 2


因为python里赋值语句和声明变量是一个体的, 所以需要global来告诉解释器i是全局变量, 接下来的i=2才能被当作是赋值

------------------追答---------------------

同一个代码块(作用域)里, 同一个变量的作用域只能是同一种或者说同一个变量只能来自同一个作用域, 不能是一会是局部变量然后又变成全局变量;

i = i + 1

首先前面的'i='表明了i是一个局部变量(没有global声明, 创建局部变量), 然后后面的'i+1'里的i自然也是局部变量(同一个函数下同一个变量,i已经是局部变量了, 不能再当作全局变量去用), 那么自然会报错, i在使用前未声明

i += 1

报错就更明显了, 没有global声明 那么再修改变量i的时候, 自然是当作局部变量, 使用前未声明

变量的查找顺序遵循 LEGB 可以自己百度 

关于作用域给你再写个简单的示例, 你对照着理解一下

追问非常感谢您的解惑,我还有一个问题向您请教:
在函数g()中,print(i)此时变量i取全局变量i中的值1,但是如果在print(i)前添加语句i=i+1,此时执行会报错:局部变量i没有被定义。我的疑问是:为什么执行i+=1时,局部变量i不会取全局变量i的值1来进行i+=1的操作,而是直接报局部变量i没有被定义的异常。
def g():
print(i)

玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 Python 的类中到底有没有建立作用域 Python语言中作用域怎么理解? 苹果智能手机与其它品牌手机使用的实际优势在哪里? 苹果手机的优势是什么啊? 苹果手机的优点是什么? IPHONE手机有什么优点?它的好处到底在哪里? iPhone手机的优势究竟在哪里? 苹果手机比其他手机究竟好在哪里 苹果手机有什么优点?有什么缺点? 苹果公布业绩,苹果有手机有何优势? iPhone到底好用在哪里?为什么很多人都在买苹果手机? 苹果手机的好处在哪里 苹果手机那么贵,为什么还有那么多人用?有什么优势吗? 苹果手机有哪些好处? 苹果手机有什么优缺点? 苹果手机的有哪些优点。 苹果手机优势在哪里 苹果手机到底优秀在哪里?为什么那么多人想买? 苹果手机好在哪里? 苹果手机的优点在哪里 PYTHON 的变量作用域与内存分配 python什么是闭包 闭包的作用域 python变量的作用域到底怎么理解怎么用呢?谢谢! 深入探究Python中变量的拷贝和作用域问题 python 2.7 变量作用域的疑问 python中什么叫局部作用域 python for循环作用域问题 初学python,有关函数作用域问题 python 程序中有多少全局作用域?有多少局部作用域 如何在特定的作用域将python系统函数替换成自己的函数 python函数实参不是的作用域问题,高手来解释下下面的输出? 没看python的基础,求教python变量的作用域问题,下面附代码,感谢! python global的作用域 python中global的作用是什么? python3.5中,无法numpy怎么解决 dra-tl00什么型号? dra-tl00可以无线充电吗? dra-tl00能不能用三网的? 联通短信中心号码怎么设置? 苹果手机里不等于符号怎么打出来?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com