Как передать аргумент от одной функции к другой в Python? - PullRequest
0 голосов
/ 02 мая 2020

У меня сейчас четыре функции для анализа файла CSV. Первый форматирует документ и выводит (возвращает) четыре значения. Второе и третье получают четыре значения из первой функции и вычисляют (и возвращают) некоторые другие значения. Основная функция (четвертая) должна возвращать значения из второй и третьей функции.

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

Мой код выглядит примерно так:

def formatting():
   with open('marks.csv', 'r') as f:
   ...
   n = 30
   m = 9
   array = [...]
   tot = [...]
   return m, n, array, tot

def calculation():
   n, m, array, tot = formatting()
   ...
   mn = [...]
   mx = [...]
   av = [...]
   sd = [...]
   return mn, mx, av, sd

def cor():
   n, m, array, tot = formatting()
   ...
   rs = [...]
   return rs

def main():
   mn, mx, av, sd = calculation()
   rs = cor()
   return(mn, mx, av, sd, rs)
main()

Но мне нужно, чтобы аргумент в main, который передается в функцию форматирования следующим образом:

main(csvfile)

, передавая форматирование, чтобы вместо этого у меня было

with open(csvfile, 'r') as f:

.

Спасибо!

1 Ответ

0 голосов
/ 02 мая 2020
def formatting(csvfile):
   with open(csvfile, 'r') as f:
   ...
   n = 30
   m = 9
   array = [...]
   tot = [...]
   return m, n, array, tot

def calculation(csvfile):
   n, m, array, tot = formatting(csvfile)
   ...
   mn = [...]
   mx = [...]
   av = [...]
   sd = [...]
   return mn, mx, av, sd

def cor(csvfile):
   n, m, array, tot = formatting(csvfile)
   ...
   rs = [...]
   return rs

def main(csvfile):
   mn, mx, av, sd = calculation(csvfile)
   rs = cor(csvfile)
   return(mn, mx, av, sd, rs)

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