Python如何获取自定义函数返回的多变量值供程序其他位置调用
解决方法
- 函数内部定义的变量是局部变量,函数外部默认无法直接访问,你需要通过接收函数return的返回值来获取对应数据
- 你的
print_prediction函数返回的是包含两个元素的元组:(predicted_proba_vector, category),调用时直接用对应数量的变量接收返回值即可
修改后的循环部分代码示例:
for index, row in metadata.iterrows(): file_path = os.path.join(os.path.abspath(fulldatasetpath)+'/'+str(row["file_name"])) # 接收函数返回的两个值 predicted_proba_vector, category = print_prediction(file_path) # 之后就可以正常使用这两个变量了 prob1 = predicted_proba_vector[0] # 原代码此处缺少右括号,已补充;同时修正取值逻辑避免局部变量报错 cat1 = format(predicted_proba_vector[0][1], '.15f') predictions.append([file_path, prob1]) time.sleep(.1)
补充说明:你当前函数return的
category是循环结束后最后一次迭代的类别值,如果你需要所有类别的名称列表,建议修改函数的返回值逻辑,比如在循环外先新建空列表存储所有category值,最后返回这个列表即可。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

