[英]local variable referenced before assignment
我是python的新手我找到了这个问题的一些答案,但没有什么能真正帮助我。
这里是我遇到问题的代码部分:
batch_index=0 # initializing a globale variable, I've tried with global batch_index too
..................................
def next_Training_Batch():
if batch_index < len(train_data):
batch_index = batch_index + 1
return train_data[batch_index-1], train_labels[batch_index-1]
else :
shuffle_data()
batch_index = 0
return train_data[batch_index], train_labels[batch_index]
当我调用该函数时,我得到以下内容:
UnboundLocalError: local variable 'batch_index' referenced before assignment
我不想在函数中使用参数(如类似问题所示)并且说实话我正在使用“全局”变量的数量而没有任何错误,我不明白为什么我不被允许在if语句中评估它? 谢谢你的暗示!
将global batch_index
添加到函数的开头,它将知道您指的是全局变量而不是本地变量。
batch_index=0 # initializing a globale variable, I've tried with global batch_index too
...
def next_Training_Batch():
global batch_index
if batch_index < len(train_data):
batch_index = batch_index + 1
return train_data[batch_index - 1], train_labels[batch_index - 1]
else:
shuffle_data()
batch_index = 0
return tain_data[batch_index], train_labels[batch_index]
使用创建变量副本的global关键字
def next_Training_Batch():
global batch_index
if batch_index < len(train_data):
batch_index = batch_index + 1
return train_data[batch_index-1], train_labels[batch_index-1]
else :
shuffle_data()
batch_index = 0
return tain_data[batch_index], train_labels[batch_index]
但是还没有定义train_data
在函数内部使用全局说全局batch_index
batch_index = 0#初始化一个globale变量,我也尝试过使用全局batch_index
def next_Training_Batch():
global batch_index
if batch_index < len(train_data):
batch_index = batch_index + 1
return train_data[batch_index-1], train_labels[batch_index-1]
else :
shuffle_data()
batch_index = 0
return tain_data[batch_index], train_labels[batch_index]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.