python - Python 不能使用从另一个文件调用的函数
问题描述
我在一个文件中有这两个函数,我试图从一个单独的 python 文件中使用它。
我的主要文件设置:
import pandas as pd
import re
import sys
sys.path.insert(0, 'my_path')
from functions_py import * #Useful python functions saved in a different script
具有功能的单独文件:
def global_pd_dfs(pattern=None, return_values=False):
dct = globals()
if pattern is None:
return [dct[x] if return_values else x for x in dct.keys() if type(dct[x]) == pd.core.frame.DataFrame]
else:
pattern = re.compile(pattern)
return [dct[x] if return_values else x for x in dct.keys() if type(dct[x]) == pd.core.frame.DataFrame and pattern.match(x)]
def multi_merge(pattern=None):
return reduce(lambda x, y: pd.merge(x, y, on=None), global_pd_dfs(pattern=pattern, return_values = True))
当我从我的主文件运行时,它返回一个错误:
df = multi_merge("^m_")
TypeError: reduce() of empty sequence with no initial value
但是,当我从主脚本运行函数时,它工作得非常好。为什么是这样?
解决方案
推荐阅读
- jquery - 无法使用 json 嵌套数组 ajax 实现数据表
- redux - Action.type 未定义的 redux
- jenkins - 如何在清除 git 存储库之前执行批处理命令?
- javascript - 从另一个模块注入nestjs服务
- vba - Excel VBA循环遍历命名范围
- android - 比较时是否忽略字符串的大小写?
- python - 为什么 Tensorflow-GPU 在中纪元内存不足?
- javascript - 多个文件检查扩展名是 Pdf
- histogram - ROOT:将根文件与 hadd 和权重相加
- java - 尝试在 Android Studio 中执行单元测试时出现“JUnit 版本 3.8 或更高版本”错误