在修改其值的函数中使用模块局部变量的最佳方式



这是Python 2.7中的内容。下面是一个例子。

v = 1
def print_v():
    v += 1
    print v
print_v()

这怎么能改写为当这个模块被导入时,我没有得到这个:

$ python -c "import the_above_module"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "the_above_module.py", line 9, in <module>
    print_v()
  File "the_above_module.py", line 6, in print_v
    v += 1
UnboundLocalError: local variable 'v' referenced before assignment

global v放入print_v函数中。

但是,您应该考虑一下为什么要使用(和修改(全局变量。这通常是一种脆弱的做事方式。

最新更新