Я изо всех сил пытаюсь разработать проект моей большой программы. Общая схема выглядит примерно так:Рекомендации по модульности Python
def mainFunc(parm_1, parm_2, ..., parm_n):
# do step 1
# do step 2
# ...
# do step m
Мой вопрос: должен ли я сделать каждый шаг своей собственной функцией? Я бы никогда не хотел вызывать какой-либо шаг как функцию вне mainFunc. Таким образом, было бы лучше сделать каждый шаг фрагментом? Какая практическая разница между вызовом функции и выполнением фрагмента, который делает то же самое? (Предполагая, конечно, что любые ненужные переменные удаляются в конце фрагмента.)
Я действительно не знаю, какой подход лучше в долгосрочной перспективе. Любые предложения будут ценны.
Практически нет разницы между вызовом внешней функции и вставкой кода на место - так что забудьте об этом. Причина группировки кода в функции/методы заключается в том, чтобы сделать код повторно используемым (если вам нужно повторить шаг несколько раз, он должен быть определенно извлечен для работы) и разделить огромный блок кода на многие более мелкие блоки - вам нужно решить, 'mainFunc' будет достаточно большим –
Это довольно широкий вопрос. В большинстве случаев это зависит от ваших потребностей ... Python - это язык OOP, поэтому есть классы. Много раз у меня есть класс 'class MyApp()' с методами, а затем метод 'run', который вызывает методы класс. И затем я использую его как 'MyApp(). Run()' .. Но это всего лишь одна из многих, многих концепций. – quapka
Вы также должны подумать о том, что другие люди (а также вы через 3 месяца после того, в коде), скорее всего, придется читать и поддерживать ваш код. Таким образом, гораздо проще сообщать, что каждая из частей делает с docstrings и функциями, которые вносят вклад в предсказуемый формат, делают легко идентифицируемую вещь и дают результат в заданном формате. Если у вас есть одна гигантская функция, которая «делает все», то это потеряно. – roganjosh