Skip to main content
 首页 » 编程设计

python之初学者python问题: Unresolved reference in function arguments (passing variables)

2025年05月04日15飞鱼

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

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) 中一直出现“ Unresolved 引用”。我尝试在一开始就创建一个空白的 pandas df = df1 来尝试解决这个问题,但它仍然给我同样的错误。我以为我正确地传递了变量,那么这里发生了什么?即使我不放置 if __name__ == '__main__': 并且也直接运行函数,也会发生这种情况。

请您参考如下方法:

它以 if __name__ == '__main__': 下的代码开头,并且此时您没有定义变量 df1。 conv_pd_df()中的df1只存在于该函数的范围内

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

df1  = conv_pd_df()