首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python变量有关问题

2012-04-01 
python变量问题--成功i1def greet():print igreet()--报错i1def greet():print ii + 1greet()请问各

python变量问题
--成功
i=1;
def greet():
  print i
greet()
--报错
i=1;
def greet():
  print i
  i += 1;
greet()
请问各位大虾,为什么我下面加了一行就会报i未定义呢,如果不加就能打印出i。

[解决办法]
没有把你的变量i 当全局变量,应该是把i当成局部变脸,显示是没定义,
def greet()
globle i
print i
这样就没问题
[解决办法]
字典是可变类型,可修改,而前面的i是不可变的,函数里没有申明,不会去引用外面的i
[解决办法]
这是python赋值运算符特别之处,它永远从最内层作用域寻找标识符找不到就报错,所以i得global一下赋
值运算符才看得见它,字典那个其实是两步操作,第一步索引操作会自动在外部作用域寻找标识符然后赋值,
所以没问题。更详细的打开文档搜"assignment"

热点排行