我在初步使用的时候,是这样写的
def main():
global l
l = ''
def deal(a:str):
l = l + a
deal("77")
deal("88")
print(l)
main()
于是报错
---------------------------------------------------------------------------
UnboundLocalError Traceback (most recent call last)
<ipython-input-62-307813346f06> in <module>
7 deal("88")
8 print(l)
----> 9 main()
<ipython-input-62-307813346f06> in main()
4 def deal(a:str):
5 l = l + a
----> 6 deal("77")
7 deal("88")
8 print(l)
<ipython-input-62-307813346f06> in deal(a)
3 l = ''
4 def deal(a:str):
----> 5 l = l + a
6 deal("77")
7 deal("88")
UnboundLocalError: local variable 'l' referenced before assignment
原来第一次在主函数main里引用后,还得需要在子函数deal里再引用一次,不然还是会被默认为子函数deal里的局部变量
因此要修改为
def main():
global l #第一次引用(定义)
l = '' # 重新初始化数据
def deal(a:str):
global l #第二次引用
l = l + a
deal("77")
deal("88")
print(l)
main()