消除本地错误-为什么?关于范围的困惑

时间:2019-06-23 19:35:53

标签: python

我正在遵循MITx的6.00.1x,幻灯片(如下所示)使我感到困惑。具体来说,为什么const express = require('express'); const router = express.Router(); router.get('/test', (req, res) => res.json({ msg: 'Users Works' })); module.exports = router; 作为未绑定的本地错误返回。

以下是发布的进一步说明:

  如果

h(y)n += y相同,则由于

尚未在本地定义n = n + y或已将其声明为非本地或全局变量,将失败      
      
  • 解释器首先评估n的右侧,因此找到   =在全局范围内(因此可读),并在其中添加n,然后
  •   
  • 解释器尝试将全局y的结果绑定到上的n + y   n的左侧。但是因为=不是本地的,而且还不是   声明为全局,此尝试的绑定会产生错误。
  •   

第一个要点很简单。在第二篇文章中,我了解到解释器正在尝试将n的结果绑定到n + yn不是本地的,没关系;但是它是在全局范围内声明的,不是吗?具体来说,n声明了变量。

这里的问题似乎是该函数试图将x=5(或本例中的n)绑定到全局范围,但这是不允许的-我知道绑定是从本地进行的不允许将作用域设置为全局范围,但是Python是否不会在本地范围内自动实例化x / n并将其绑定x

enter image description here

0 个答案:

没有答案