Как заставить мою функцию python читать данные из другого файла .py - PullRequest
0 голосов
/ 14 июля 2020

Примечание. Ниже я упростил задачу. Кроме того, я использую Spyder.

Я сохранил функцию под названием testFun c в файле .py. Эта функция дает вам среднее значение подмножества списка чисел.

Это функция, к вашему сведению:

def testFunc(X):
    subSet = List[0:X]
    Output = sum(subSet)/len(subSet)
    return Output

В мой главный файл .py я загружаю данные:

List = [1, 2, 3, 4]

Затем я вытаскиваю функцию testFun c из отдельной папки:

%run '/Users/mak/Dropbox/Python/My functions/getScore.py'

Затем я пытаюсь запустить свои данные через свою функцию:

testFunc(2)

Однако я получаю сообщение

NameError: name 'List' is not defined

Когда я запускаю функцию и определяю список в том же файле .py, у меня нет этой проблемы. Но я не хочу этого делать, так как мой код очень длинный.

Еще я могу определить список как часть функции. Но я опасаюсь делать это, поскольку мой фактический набор данных (Список) огромен, и вытаскивание его каждый раз, когда я хочу запустить эту функцию, кажется менее чем элегантным.

Есть ли третий способ?

1 Ответ

0 голосов
/ 14 июля 2020

Вам необходимо import список, прежде чем вы сможете его использовать:

master.py:

x_lst = [1, 2, 3, 4]

test.py:

from master import x_lst

def testFunc(X):
    subSet = x_lst[0:X]
    Output = sum(subSet)/len(subSet)
    return Output
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...