快捷导航

关于Python作用域的问题!急死我了

i=0deff():printii=0f()运行结果显示:UnboundLocalError: local variable 'i' referenced before assignment。在这个例子当中,函数f中的变量i是局部变量,但是在print语句使用它的时候,它还未被绑定到任何对象之上,那么接下来不是应该往上级搜寻i?这里最外面i=0应该是全局域的全局变量,而f中的i是local作用域中的局部变量。所以print使用i的时候,i还没有绑定,所以应该往全局域中找全局变量i=0啊!为什么还告诉我局部变量引用之前未定义??????求哥哥们教我!

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

我理解应该是这样的,函数f里面print i,首先会先在函数内部查找是否有这个变量,而函数内部是有变量i的,但是在打印语句的后面,所以会报赋值前引用局部变量。
回复

使用道具 举报

i 应该声明global
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP