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



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

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

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

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

您应该将__main__中的df1设置为等于conv_pd_df()的回报

df1  = conv_pd_df()

你的主要是:

if __name__ == '__main__':
conv_pd_df()
highlight(df1)

当然,conv_pd_df()返回df1数据帧,但您不绑定该返回值,因此没有名为df1的变量。 以下内容将修复该引用问题:

if __name__ == '__main__':
df1 = conv_pd_df()
highlight(df1)

最新更新