内部函数要修改外部函数的不可变类型,需要加nonlocal声明,如果只是读取不修改则不需要
修改可变类型不需要nonlocal声明
global用法类似,局部要对全局不可变类型变量修改,则在局部声明
“修改可变类型不需要nonlocal声明”,这句话还是有些误解,是否需要nonlocal声明要看你是否改变地址,例如在外部定义 L =[],如果不改变L的地址,用append,下标等操作则无需nonlocal声明,如果L=[1]这类赋值操作会改变L的地址则需要nonlocal声明
感谢,这个教程前面好像没有讲过nonlocal吧?
Sign in to make a reply
用户5493109144
内部函数要修改外部函数的不可变类型,需要加nonlocal声明,如果只是读取不修改则不需要
修改可变类型不需要nonlocal声明
global用法类似,局部要对全局不可变类型变量修改,则在局部声明