位置: 编程技术 - 正文

PYTHON 中使用 GLOBAL引发的一系列问题(pythonglobal用法)

编辑:rootadmin

推荐整理分享PYTHON 中使用 GLOBAL引发的一系列问题(pythonglobal用法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:glob在python,python glob2,python中glob的用法,python globa,python中glob的用法,python glob,python中glob的用法,python中glob的用法,内容如对您有帮助,希望把文章链接给更多的朋友!

哪里出问题了

  python 中,使用 global 会将全局变量设为本函数可用。同时,在函数内部访问变量会先本地再全局。

  在嵌套函数中,使用 global 会产生不合常理的行为。

  上代码:

  而在函数 x() 中,没有用 global,此时的b使用本地。所以 print 会打印本地 b

  为什么会打印 ?还有 In[]的 b 为 2 该怎么解释&#;

  y(),使用的 global 竟然没把 x() 的 b = 导进来。

  在函数 y() 中,语句 global a,b 使a,b扩展为全局,所以,在最高层,就算没有 b(In[]),也会产生 b(In[])。

  也就是说, global a,b ,会认为 a 和 b 是最外层的变量。

  再试一下:

  报错了! y() global b 后没赋值,顶层就没有 b。这说明,global 只是引入名称,并不做赋值等操作。

  global 不会管变量存不存在,只导入名称,对该名称的操作会反应到 ‘最高层名称空间‘。

  再来:

   这就确定了 内层y() 的 global 不会 导入 x() 的东西。

   那么,内层函数怎么使用正确的外层函数的变量呢?

PYTHON 中使用 GLOBAL引发的一系列问题(pythonglobal用法)

解决内层函数参数传递问题

  一、

  首先,若只是取值,则不需要做任何处理。

  在 y() 中,一旦为 a 赋值,a 立马变内部变量。

  一旦在函数 y() 的某处给 a 赋值,则在赋值前,python 会认为 a 不存在。

  同时发现 python2 的 print 会一个一个的 输出。鉴于此,我又在 python3 中试了,发现他是 一起输出。但这不是本文重点,折叠之。

同时发现 python代码运行前 会先扫一遍代码的,而不是单纯的一行一行的执行。

  同时发现返回 UnboundLocalError,而不是 NameError。注意到 'unbound‘,这是官方概念。用 'unbound‘ 来描述就是:global 会将顶层变量名称 绑定 到本地变量名称,同时变化,是为 '引用‘;python 检测到 a = 1时,意识到 a 是本地的,所以 在 a '指向一个对象‘(因为python变量均为引用),之前 ,调用 a 是非法 行为,但这种行为区别于于 NameError,就定义为 unbound local。

  二、

  使用 可变变量,如 list,dict

  没有报错,完美!

  要注意 语句 l[:] = ["out msg"] ,使用切片赋值,否则,

  又出 UnboundLocalError 了,因为 第六行代码 为 l 分配了 一个新的 list。

  三、

  利用参数传递。

  注意,不要在默认参数上放 list等可变对象。

以上所述是小编给大家介绍的PYTHON 中使用 GLOBAL引发的一系列问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

python使用str & repr转换字符串 可能比较low还是记录一下:str和repr的使用过程str是一个类型(int,long类似),同样她也可以作为一个工厂方法实例一个stringrepr是python内置的函数,用

Python判断某个用户对某个文件的权限 在Python我们要判断一个文件对当前用户有没有读、写、执行权限,我们通常可以使用os.access函数来实现,比如:#判断读权限os.access(myfile,os.R_OK)#判断写

CentOS6.5设置Django开发环境 今天在我的Centos6.5机器上安装Django开发环境,在安装完使用django-admin.pystartprojectmyapp创建应用的时候报了下面的错误$django-admin.pystartprojectmyappTraceback(mostr

标签: pythonglobal用法

本文链接地址:https://www.jiuchutong.com/biancheng/384421.html 转载请保留说明!

上一篇:CentOS 6.X系统下升级Python2.6到Python2.7 的方法(centos6.5)

下一篇:python使用str & repr转换字符串(PYTHON使用缩进来体现代码之间的逻辑关系)

  • 一般纳税人的税收优惠政策
  • 发票为啥一直显示上传不成功
  • 五险一金计提缴纳分录
  • 车辆购置税完税证明网上打印
  • 固定资产大修理支出标准
  • 增值税怎样报税
  • 企业承担的法律责任有哪些保险
  • 材料实际成本的会计分录
  • 应收账款补提坏账是什么意思
  • 对外来发票金额怎么算
  • 预交增值税附加税费减免吗
  • 租金收入未收到 税法规定
  • 公司注销房产如何转给个人
  • 企业经营收入达到多少
  • 该纳税人不属于经备案的二手车企业
  • 法律规定临时工工资最迟多久结清
  • 小规模红字发票怎么做账务处理
  • 职工工资个人所得税缴纳标准
  • 成本票和费用票分别是什么
  • 公司取得政府赔偿款要交增值税吗
  • 企业为什么要缴纳增值税
  • 出租车库收入是否需要计算缴纳土地增值税
  • 公司注销财务账需要保存几年
  • 污水处理费谁来收
  • 本月负数发票大于正数发票 留抵的增值税怎么做账
  • 电力发票没有到怎么做分录
  • 投资公司抛售原始股如何交税?
  • 跨省经营如何缴纳流转税?
  • 该内存不能为read,要终止程序
  • word从一台电脑考到另一台电脑格式不一致怎么解决
  • 举办活动购买的东西会计分录
  • 一般纳税人接受固定资产投资时相关的科目可能有
  • 收入成本科目
  • linux操作系统文件系统
  • 笔记本屏幕坏点几个算正常
  • 2021前端面试题目100及最佳答案
  • 个人通讯费可以税前扣除吗
  • 公司借款利息可以用对公户转账吗
  • 如何在Android中找到关闭的文件
  • 如何构建自己的精神空间
  • ps中文字复制粘贴
  • 企业开具劳务费发票怎么开,税率多少
  • 捐赠收入要交所得税吗
  • 100万的工程怎么开发票
  • 处置固定资产账务处理进什么科目
  • 收据可以入账的情况
  • 税务机关如何对个人股东股权财务报表审核
  • 短期借款财务处理
  • 土地使用税如何计算缴纳
  • 研发支出资本化支出期末怎么处理
  • 装修费可以一次性入账吗
  • 房屋租赁合同印花税谁交
  • 销售预付卡的账务处理
  • 科目汇总表里的应交税费
  • 如何控制自己不磨牙
  • 修改mysql数据库字符集
  • 存储过程怎么理解
  • ubuntu终端终止正在执行的命令
  • drivemgr.exe 病毒介绍
  • windows多屏显示
  • linux怎么查看
  • win10win8
  • win10mobile最新版本
  • win 10系统怎么提高网速
  • 向Windows8靠拢 全新的个性化库页面
  • 表单提交servlet
  • cssimage
  • wordpress单页面店铺
  • 基于nodejs的框架
  • python单子
  • Unity MeshBaker 合并网格和材质
  • js类的实现
  • 微信假消息
  • 税务局收垃圾处置费
  • 广东省地税局局长 吴
  • 电子发票版式文件生成失败怎么办
  • 学校 税务登记
  • 深圳电子税务局app
  • 矿产资源税的计税依据
  • 国税电子版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设