python内部函数能修改外部函数的值吗?怎么写?,python值吗,def b():


def b():    b = 1    def bchange():        b += 1  #UnboundLocalError: local variable 'b' referenced before assignment     bchange()    print b

比如在这段代码中,如何使bchange这个函数能够对b()中的b成功实施+1操作? 注:不使用参数传递。

Python 3:

def b():  b = 1  def bchange():      nonlocal b      b += 1  bchange()  print(b)

Python 2 只能这样(利用 mutable 对象):

def b():  b = [1]  def bchange():      b[0] += 1  bchange()  print b[0]

编橙之家文章,

评论关闭