python - Python NameError:未定义全局名称
问题描述
我正在尝试在另一个函数中使用一个函数及其给出错误。我正在使用类作为结构。我尝试将块初始化为零,但它没有用。块也是一个字节
Chunk = bytearray(b'\x00') # is it a good idea to use this or any other options?
class Prog:
PROGRAMMING_FLAG = False
SET_ADD_FLAG = False
DATA_FLAG = False
ADD_COMMAND_FLAG = False
ERASE_FLAG = False
ATTEMPT = 1
def prog_flash(Chunk):
try:
Prog.DATA_BUFFER = []
Prog.ADD_COMMAND_FLAG = True
Prog.DATA_BUFFER.append(hex(0x02))
No_Of_Bytes = Chunk * 64
for index in range(0,64):
Prog.DATA_BUFFER.append(hex(DataBuffer[No_Of_Bytes+index]))
Prog.DATA_BUFFER.append(hex(Calculate_Checksum(Prog.DATA_BUFFER[1:Prog.DATA_BUFFER.__len__()])))
Prog.DATA_FLAG = True
return Prog.DATA_BUFFER
except Exception, e:
print("Error")
pass
def other_fn():
prog_flash(Chunk)
错误:
NameError:未定义全局名称“块”
解决方案
DataBuffer 未定义,Calculate_Checksum 也未定义,
结构应该像
Chunk = bytearray(b'\x00') # is it a good idea to use this or any other options?
class Prog:
PROGRAMMING_FLAG = False
SET_ADD_FLAG = False
DATA_FLAG = False
ADD_COMMAND_FLAG = False
ERASE_FLAG = False
ATTEMPT = 1
def prog_flash(Chunk):
try:
Prog.DATA_BUFFER = []
Prog.ADD_COMMAND_FLAG = True
Prog.DATA_BUFFER.append(hex(0x02))
No_Of_Bytes = Chunk * 64
for index in range(0,64):
Prog.DATA_BUFFER.append(hex(DataBuffer[No_Of_Bytes+index]))
Prog.DATA_BUFFER.append(hex(Calculate_Checksum(Prog.DATA_BUFFER[1:Prog.DATA_BUFFER.__len__()])))
Prog.DATA_FLAG = True
return Prog.DATA_BUFFER
except Exception, e:
# handle Expection
print "There was an error: %s" %(e)
pass
def other_fn():
prog_flash(Chunk)
if __name__ == '__main__':
other_fn()
推荐阅读
- c# - 如何通过 gmap 使用纬度和经度获取地址?
- list - 如何将地图列表设置为 javafx 表视图
- excel - 使用宏对不同工作表进行列标题验证
- java - JLabel 没有更新?
- html - 如何知道使用绝对定位垂直居中需要多少像素?
- reactjs - React-JS / react-router-dom 中的路由问题
- ruby-on-rails - Rails 5 以一种形式创建同一模型的多个记录,未知属性错误
- css - 如何在 IE 11 中显示:grid div 以占据整个屏幕?(100vh 似乎不起作用)
- html - 为什么我的 HTML 表格不遵守指定的布局?
- web-traffic - 如何在给定时间获得给定网址(不在我的网站上)的多次点击?