A页面:
B页面
在A页面中from b.py import *
为什么执行A页面的时候提示:global name 's1List' is not defined
求解答。。。
ä½ å¯ä»¥ å¨ Bé¡µé¢ éé¢ç´æ¥ è°ç¨ ä¸ä¸ å½æ°
è¿è¡ä¸ä¸ ï¼ä½ å¯ä»¥åç°åºè¯¥å åæ æ§è¡A é¡µé¢ æ¥çæ¯åæ ·çé误ï¼
è¿æ¯ å 为 å¨B 页é¢éé¢ å¹¶æ²¡æ s1List è¿æ ·ä¸ä¸ªæ°ç»
å¨è¿è¡A页é¢æ¶ï¼å 为æäº from b import * ï¼python解éå¨å°±å¯ä»¥æ¾çgetS1ågetS2è¿æ ·çå½æ°åï¼å¯ä»¥ å¨ import ä¹å print dir() æ¥æ¥ç å½åä½ç¨åä¸å¯ç¨çåå ï¼å¯ä»¥çå° getS1 ågetS2 é½å¨å ¶ä¸
ä¹æ以 æ§è¡ A页é¢é误ï¼æ¯A页é¢è°ç¨ å½æ° getS1 æ¶ï¼å¨B页é¢ä¸ æ§è¡ å½æ°æ¶æ¾ä¸å° s1Listè¿ä¸ªæ°ç»ï¼å 为å¨A 页é¢çé£ä¸ª s1List æ¯ä¸å¨ B页é¢çä½ç¨èå´å çã追é®
è¿è¡ä¸ä¸ ï¼ä½ å¯ä»¥åç°åºè¯¥å åæ æ§è¡A é¡µé¢ æ¥çæ¯åæ ·çé误ï¼
è¿æ¯ å 为 å¨B 页é¢éé¢ å¹¶æ²¡æ s1List è¿æ ·ä¸ä¸ªæ°ç»
å¨è¿è¡A页é¢æ¶ï¼å 为æäº from b import * ï¼python解éå¨å°±å¯ä»¥æ¾çgetS1ågetS2è¿æ ·çå½æ°åï¼å¯ä»¥ å¨ import ä¹å print dir() æ¥æ¥ç å½åä½ç¨åä¸å¯ç¨çåå ï¼å¯ä»¥çå° getS1 ågetS2 é½å¨å ¶ä¸
ä¹æ以 æ§è¡ A页é¢é误ï¼æ¯A页é¢è°ç¨ å½æ° getS1 æ¶ï¼å¨B页é¢ä¸ æ§è¡ å½æ°æ¶æ¾ä¸å° s1Listè¿ä¸ªæ°ç»ï¼å 为å¨A 页é¢çé£ä¸ª s1List æ¯ä¸å¨ B页é¢çä½ç¨èå´å çã追é®
importB页é¢åï¼ä¸æ¯æB页é¢ç代ç åé½æ¿è¿æ¥åï¼è¿æ¯åªæ¯æå½æ°æ¿è¿æ¥ï¼
æå¨A页é¢å£°æs1Listä¹ä¸è¡åï¼èä¸æå global s1Listä¹ä¸è¡åï¼
æä¹è¯´å¢ã
import æ¯æ é£ä¸ªæ¨¡åä¸ç ååï¼åéï¼å½æ°çï¼æ·»å å°å½åä½ç¨åä¸ï¼ä¸æ¯ç®åçæ代ç å å¤å¶è¿æ¥è¿æ ·~
è³äºä½ æ³çé£æ ·ï¼è³å°æä¸ç¥é该æä¹åï¼ä¸è¬åä½ å¨B页é¢éç¨å°åªä¸ªåéï¼å°±å¨å½å页é¢å®ä¹ä¸ä¸ãæ³ç´æ¥ä¿®æ¹ä¸»é¡µé¢éé¢çåéææ¯ä¸å¤ªæ¸
æ¥è¯¥æä¹åï¼çæé«ææç¹ä¸æ²¡ã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-08-07
因为你没有在A页面中声明s1List是全局变量,但是在调用getS1时,却用到了s1List,所以会出现这样的错误。如果你在a中加入
global s1List,s2List
就不会出错了。追问
global s1List,s2List
就不会出错了。追问
我加了也出错啊!
第2个回答 2012-08-11
首先要说的是global name 's1List' is not defined,是在import b的时候出现的错误,因为python的解释器会先将py文件生成pyc文件,b文件中没有声明s1list和s2list,肯定报错,你可以把这两个数组作为参数,def getS1(s,s1list)。