繁体   English   中英

赋值前引用的局部变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM