我收到以下错误:
UnboundLocalError: local variable 'current_uarfcn' referenced before assignment
但是我不知道为什么,我声明它与ran_update_uarfcn
的方式相同,并且该变量工作正常。有什么想法吗?
current_uarfcn = ""
ran_update_uarfcn = ""
def ran_network_listen(access_point_id, mode):
def set_current_uarfcn(value):
global current_uarfcn
global ran_update_uarfcn
current_uarfcn = value
ran_update_uarfcn = "upd ap" + " " + access_point_id + " " + "uarfcn=" + current_uarfcn
set_current_uarfcn("11000")
print ran_update_uarfcn
print current_uarfcn
return
编辑:stacktrace
Traceback (most recent call last):
File "/a/b.py", line 460, in <module>
ran_network_listen(ap_id, mode)
File "/a/b.py", line 97, in ran_network_listen
print current_uarfcn
UnboundLocalError: local variable 'current_uarfcn' referenced before assignment
这样称呼:
# Network Listen
if args.ap_id:
ap_id = args.ap_id[0]
mode = None
if len(args.ap_id) == 2:
mode = args.ap_id[1]
ran_network_listen(ap_id, mode)
答案 0 :(得分:2)
显示的代码可以正常使用。
我能想到的唯一问题是你在其他行的某些行和空格上使用制表符,以便赋值语句确实是外部函数的一部分。
使用python你永远不应该为你的代码使用制表符(我们有一个实际强制执行的预提交规则)
答案 1 :(得分:1)
您必须在第一个函数
中定义ran_network_listencurrent_uarfcn = ""
ran_update_uarfcn = ""
def ran_network_listen(access_point_id, mode):
global current_uarfcn
global ran_update_uarfcn
def set_current_uarfcn(value):
current_uarfcn = value
ran_update_uarfcn = "upd ap" + " " + access_point_id + " " + "uarfcn=" + current_uarfcn
set_current_uarfcn("11000")
print ran_update_uarfcn
print current_uarfcn
return
答案 2 :(得分:1)
您是否尝试在ran_network_listen方法中声明全局? 您只在set_current_uarfcn。
中的上下文中声明了它