为了账号安全,请及时绑定邮箱和手机立即绑定

在函数内部,在内部函数定义之前调用,报错

在函数内部,在内部函数定义之前调用,报错

森栏 2019-02-20 23:19:33
def str(s): print 'global str()' def foo(): str('dummy') def str(s): print 'closure str()' str('dummy') def bar(): str('dummy') print 'call' foo() bar() 现象: 在foo()函数里面 第一次调用str的时候 提示: UnboundLocalError: local variable 'str' referenced before assignment 问题: 1. 在运行foo()的时候,第一次调用str, foo本地命名空间没有str的定义,这时候要去外部找str, 为什么会找不到外部定义的str 2. foo内部有str的定义, 解释器第一次读入foo定义的时候, 内部的str要怎么处理 3. 为什么会报这个错误, 类似的bar(), 为什么能够找到外部的str 谢谢~~
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 483 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信