python中,对于变量作用域的规定有些不一样。
在诸如C/C++、java等编程语言中,默认在函数的内部是能够直接訪问在函数外定义的全局变量的,可是这一点在python中就会有问题。以下是一个样例。
test.py:
#!/usr/bin/python
COUNT=1
def func():
COUNT = COUNT + 1
func()
Python test.py。会执行报错:
Traceback (most recent call last):
File "test.py", line 8, in
func()
File "test.py", line 6, in func
COUNT = COUNT + 1
UnboundLocalError: local variable 'COUNT' referenced before assignment“UnboundLocalError: local variable 'COUNT' referenced before assignment”的意思是变量COUNT在赋值之前被引用。
这里要知道python和其他编程语言不一样的地方。像C/C++之类的编程语言。变量名称实际上是代表的一块内存区域。对该变量赋值的意思就是将新的值放入该变量指定的内存区域。而对于python来说。全部的变量都是对内存区域的引用,对变量赋值相当于将变量引用的内存从一块区域改变到另外一块存放新值的区域。
也就是说,C/C++中,变量名和内存区域的相应关系不会变,变的仅仅是相应内存中存放的值;而在python中&