python初学者问题:函数参数中未解析的引用(传递变量)

tra*_*gon 1 python function

这可能是一个带有明显答案的问题,但我似乎无法弄清楚这里出了什么问题。

def conv_pd_df():
    spreadsheet = client.open(spreadsheet_id).sheet1
    data = spreadsheet.get_all_values()
    index = str(data[0][0])
    headers = data.pop(0)

    df = pd.DataFrame(data, columns=headers, index=None)
    df = df.set_index(index)

    mask = df.applymap(lambda x: key in str(x))
    df1 = df[mask.any(axis=1)]
    return df1


def highlight(df1):
    for x in df1:
        print(x) # filler


if __name__ == '__main__':
    conv_pd_df()
    highlight(df1) # this is where the error is
Run Code Online (Sandbox Code Playgroud)

highlight(df1)尝试执行代码时,我不断收到“未解决的引用” 。我尝试在开始时尝试创建一个空白的df = df1,以尝试解决该问题,但仍然给我同样的错误。我以为我正确传递了变量,那么这是怎么回事?即使我不放if __name__ == '__main__':,也直接直接运行函数,就会发生这种情况。

Tom*_*ash 5

它从下面的代码开始,此时if __name__ == '__main__':您没有df1定义变量。将df1conv_pd_df()该函数的范围只存在

你应该设置df1__main__相等的回报conv_pd_df()

df1  = conv_pd_df()
Run Code Online (Sandbox Code Playgroud)