python2.7函数删除一个全局变量为什么不报SyntaxError错误?,,a = 3def x()
python2.7函数删除一个全局变量为什么不报SyntaxError错误?,,a = 3def x()
a = 3def x(): global a del(a)print(a)x()
在python2.7中执行上面这段代码并没有问题!但是在python2.7的文档中(没有锚记,大概在第10段)
有这样一句话:
It is illegal to unbind a name referenced by an enclosing scope; the compiler will report a SyntaxError.
我在SO上也看到了同样的一个提问,但是它答案给出的测试代码是这样的:
>>> def outer():... a=5... def inner():... nonlocal a... print(a)... del aSyntaxError: can not delete variable 'a' referenced in nested scope
但是在python2.7中,并没有nonlocal这个关键字(事实上,我在3.2上测试上面这段代码也是没有问题的)。我想知道,如果这文档(2.7)上这句话是正确的,那么测试代码(2.7)是怎样的?
编橙之家文章,
相关内容
- flask web开发中使用redis做缓存怎么和数据库同步?,f
- MongoEngine怎样更新列表数据至MongoDB数据库中,mongoengi
- 更新Django ManyToMany字段要注意哪些要点,djangomanytomany
- Python对于HTTP应用反馈mime-type列表?,pythonmime-type,请问
- 文件系统中df -h磁盘命令变成数组格式python方法怎么解
- 页面带链接目录的问题py sphinx,pysphinx,比如我的文件是
- Python方法实现微信公众帐号后台间交互获取数据的方法
- Django 1.3统一验证表单中复数文本框进的简便方法,dj
- Python语言**kwargs同*args各代表什么含义及使用范围,py
- WTForms怎么能生成<button>Button</button&
评论关闭