python变量的作用域到底怎么理解怎么用呢?谢谢!

[复制链接]
查看11 | 回复3 | 2012-8-7 11:31:20 | 显示全部楼层 |阅读模式
你可以 在 B页面 里面直接 调用 一下 函数 运行一下 ,你可以发现应该和 刚才 执行A 页面 报的是同样的错误;这是 因为 在B 页面里面 并没有 s1List 这样一个数组在运行A页面时,因为有了 from b import * ,python解释器就可以找的getS1和getS2这样的函数名;可以 在 import 之后print dir() 来查看 当前作用域下可用的名字 ,可以看到 getS1 和getS2 都在其中之所以 执行 A页面错误,是A页面调用 函数 getS1 时,在B页面中 执行 函数时找不到 s1List这个数组,因为在A 页面的那个 s1List 是不在 B页面的作用范围内的。...
回复

使用道具 举报

千问 | 2012-8-7 11:31:20 | 显示全部楼层
因为你没有在A页面中声明s1List是全局变量,但是在调用getS1时,却用到了s1List,所以会出现这样的错误。如果你在a中加入global s1List,s2List就不会出错了。...
回复

使用道具 举报

千问 | 2012-8-7 11:31:20 | 显示全部楼层
首先要说的是global name 's1List' is not defined,是在import b的时候出现的错误,因为python的解释器会先将py文件生成pyc文件,b文件中没有声明s1list和s2list,肯定报错,你可以把这两个数组作为参数,def getS1(s,s1list)。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行