Python не может использовать функцию, вызываемую из другого файла - PullRequest
0 голосов
/ 03 марта 2020

У меня есть две эти функции в файле, который я пытаюсь использовать из отдельного файла 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

Однако он прекрасно работает, когда я запускаю функции из своего основного скрипта. Почему это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...