首页 > 其他分享 >Pycharm 从外部范围隐藏名称xx的问题

Pycharm 从外部范围隐藏名称xx的问题

时间:2022-11-09 15:55:32浏览次数:38  
标签:变量 外部 xx 名称 Pycharm 警告 隐藏 函数

    在接手一个Python项目的时候,通过Pycharm打开该项目,然后一片错误/警告之类的问题。为了能快速解决这些问题,我采取了一个比较笨的办法,就是重装了Python环境,并因此解决了基本所有的错误提示。但还是有一些警告,个人好像有些强迫症,不希望看到这些,然后开始着手解决。

    第一个警告就是:从外部范围隐藏名称xx

     因为之前没做过Python项目,其实对这个警告提示有些莫名其妙,通过Pycharm的提示,可以通过重命名某个方法(或者叫函数)的参数名称来消除这个警告。因此,猜想是不是函数参数的名称和类中的某个变量重名了?为了证实这个猜想,我把代码读了一遍,发现还真的是这样!!!那么,处理的方式就很简单了:要么修改函数参数变量的名称,要么修改类变量的名称。总之,只需要保证不重名就能解决该问题。

     那么问题又来了,这种在函数(或者方法)的参数列表中定义了某个参数,其名称、类型都与类中的某个变量一致,这虽然有些奇怪,但在编译型语言(例如C#)中并不会引起编译器的警告。原因是它们其实是两个对象,而且作用域也不相同。那么,是什么原因让Pycharm认为这种方式在Python中是一个比较危险的行为的呢?!

    在网上查了一下资料,大概定位为变量作用域的问题,好像会引发什么不可预知的问题,具体不清楚,待深入学习,下边将查询到的资料拷贝过来标记一下,免得下次想看的时候到处搜!

 

 

1、要消除这个黄色的警告,只需要一个知识点:变量隐藏 (variables shadow)

变量隐藏 就只有一句话:内部定义的变量会屏蔽父级定义的同名变量

2、原因:函数内部的变量,如果和函数被调用的外部的变量一样的话,就被PyCharm中叫做shadows name

这样的话,容易引发不容易觉察到的,由于函数内部和外部的变量名一致而引发的一些问题:

比如:内部函数名引用时不小心写错了时,就会导致其实调用了外部变量名,从而导致逻辑错乱。

所以解决办法是:

3、确保函数内部和外部的变量名不要重复,这样就不会导致可能由此导致的错误了

 

 


————————————————
版权声明:本文为CSDN博主「theone19」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/romon19/article/details/107857648

 

标签:变量,外部,xx,名称,Pycharm,警告,隐藏,函数
From: https://www.cnblogs.com/bushLing/p/16873426.html

相关文章

  • pycharm插件translation 更新TTK失败,请检查网络连接的解决办法
    pycharm插件translation更新TTK失败,请检查网络连接的解决办法问题描述——pycharm里面使用翻译插件translation翻译时候报出更新TTK失败,请检查网络连接的解决办法问题原......
  • pycharm快捷键
     目录pycharm学习技巧 LearningtipsPyCharm30默认快捷键翻译的pycharm常用设置pycharm环境和路径配置python解释器路径python项目解释器路径pycharm中进行python包管理py......
  • 使用pycharm操作git
    1.大前提:先在settings里面把git配上打开Pycharm, 点击File->Settings->VersionControl-->Git,在PathtoGitexecutable中选择本地的git.exe路径:   2.......
  • 解决element-ui表格多重嵌套循环时,添加row-key="id" 出现Duplicate keys detected: 'X
     Duplicatekeysdetected:'XXX'错误,怀疑是多重嵌套循环时:key="item.id或index"不能重复的问题,但设置了不同的key后并未解决,原因其实是row-key="id"的问题,因为低......
  • pycharm 小技巧
    1.如何收起所有函数ctrl加shift加-2.如何展开所有函数ctrl加shift加+3.如何展开光标所在的函数ctrl加+4.如何收起光标所在的函数ctrl加-  ......
  • python3-pycharm TAB键转换为4个空格
     pycharm默认Tab为4个空格1【File】→【setting】编辑2.【Editor】→【CodeStyle】→【Python】编辑二、pycharm空格显示【General】→【Appearance】→Showwhitespace......
  • mac(intel)安装python3,pycharm配置python3
    mac自带python2.7,使用brew下载python3太慢经常容易失败,所以官网下载。本次安装版本为3.9.71.官网下载python3.9.7,鼠标滑到最下面,找到对应版本下载,然后一路下一步傻瓜安装......
  • idea pycharm webstrom phpstrom goland clion 上传文件
    使用ide上传文件代替postman上传文件环境文件http-client.private.env.json{"dev":{"host":"http://localhost:15731/api/v1/","jwt":""}}......
  • Pycharm配置
    平台:win10x64Pycharm的下载,安装,,编辑字体+配置IDE 博客中问题——远程连接编程问题:问题描述:在XShell上查看虚拟机IP地址——输入ipconfig命令查看ip,结果提示ipconfig:com......
  • 解决python脚本运行后产生的 xx object has no attribute '***'的问题
     在调试自动化脚本时,总是出现某代码执行第一次没有问题,执行第二次时会出现 xxobjecthasnoattribute '***'的问题,如图:  百度之后得到两种解释:第一种是因为自......