账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python 和 js 变量作用域问题的不理解
    62
    0

    本人目前刚学习python, 遇到了关于变量作用域的一些问题, 如下:

    下面这个就不是非常明白

    a = 3
    def f():
        a += 4
        print(a)
    f() # UnboundLocalError: local variable 'a' referenced before assignment

    然后如果稍微改一下:

    a = 3
    def f():
        b = a + 4
        print(a)
    f() # 3

    这里新声明了一个变量b, 对a进行了引用, 然后就可以访问到a了, 不是明白为什么

    另外如果将代码 1 换成js, 结果又不同

    var a = 3
    const f = () => {
        a += 4
        console.log(a)
    }
    a() // 7
    f() // 7

    js中不仅仅能够访问到全局变量, 甚至可以对全局变量进行修改, 所以在js里面作用域机制和python又有什么区别?

    另外, 本人所了解到jspython都是静态作用域, 原理应该相同, 但是上面显示的结果却很不一样, 麻烦能有前辈清楚的解答一下, 本人才学疏浅, 见谅!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 遭遇失败 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部