Chinaunix首页 | 论坛 | 博客
  • 博客访问: 418632
  • 博文数量: 72
  • 博客积分: 2541
  • 博客等级: 少校
  • 技术积分: 756
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-20 16:08
文章分类

全部博文(72)

文章存档

2013年(13)

2009年(1)

2008年(7)

2007年(45)

2006年(6)

我的朋友

分类: Python/Ruby

2013-06-18 10:23:27

定义了一个创建文件的函数如下:

点击(此处)折叠或打开

  1. def creatFile(filename):
  2.     
  3.     if os.path.isfile(filename):
  4.         os.remove(filename)
  5.     else:
  6.         try:
  7.             f = open(filename,'w')
  8.             f.write('suijiziduan')
  9.         except IOError,e:
  10.             print 'IOError',e
  11.             add_log('创建文件异常')
  12.         finally:
  13.             f.close
  14.             add_log('成功创建文件')
反复的调用该函数:

点击(此处)折叠或打开

  1. createFile(file1)
  2. os.remove(file1)

  3. createFile(file1)
  4. os.remove(file1)
执行该脚本,报UnboundLocalError: local variable 'f' referenced before assignment错误,google发现是因为"f"作为一个变量在两个createFile函数都调用了,在第2个createFile函数时出错,把f定义成全局变量(在createFile函数里添加global f),错误解决:

点击(此处)折叠或打开

  1. def creatFile(filename):
  2.     global f
  3.     if os.path.isfile(filename):
  4.         os.remove(filename)
  5.     else:
  6.         try:
  7.             f = open(filename,'w')
  8.             f.write('suijiziduan')
  9.         except IOError,e:
  10.             print 'IOError',e
  11.             add_log('创建文件异常')
  12.         finally:
  13.             f.close
  14.             add_log('成功创建文件')


阅读(11653) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~