Файл Python - хотите изменить его на функцию или класс - PullRequest
0 голосов
/ 14 апреля 2010

У меня есть программа / файл на python, который я хочу запустить несколько раз и рассчитать средние значения некоторых переменных за эти прогоны Для этого я подумал, что было бы удобно преобразовать эту программу в функцию или класс. Один из способов, который я могу придумать, это добавить

def Main():

строка сверху и отступ каждой строки вручную внутри нее. Есть ли более простой способ? Я использую pydev для затмения.

Спасибо.

Ответы [ 6 ]

3 голосов
/ 14 апреля 2010

Да, вы на правильном пути.

Добавить определение Main (): строка

Затем в pydev выберите весь другой код, а затем нажмите вкладку, которая сделает отступ для всего кода

Чтобы код выполнялся из командной строки, т. Е. Чтобы он вызывал функцию Main, вам необходимо добавить код, который выполняется при загрузке модуля. Поэтому в конце файла добавьте

if __name__ == '__main__':
    Main()

Команда if останавливает выполнение кода, если файл загружается через импорт.

1 голос
/ 14 апреля 2010

ИМХО, твой собственный путь хорош и понятен.

Также вам не нужно делать отступы для каждой строки вручную.

Большинство редакторов поддерживают отступ всего выделенного блока.

0 голосов
/ 14 апреля 2010

Как насчет использования итераторов классов.

0 голосов
/ 14 апреля 2010

Поставить вверху:

while True:

или делай то, что ты сказал .... Или ты мог бы превратить это в класс ... но в этом случае это было бы совершенно ненужным

0 голосов
/ 14 апреля 2010

Не совсем. Любой код, не входящий в класс / функцию, будет выполнен во время загрузки модуля (один раз).

Я точно не знаю, что такое Eclipse, но в большинстве вменяемых текстовых редакторов вы можете выделить блок текста и нажать Tab, чтобы сделать отступ для блока. Некоторые редакторы имеют это в меню, что-то вроде «Edit-> Indent».

0 голосов
/ 14 апреля 2010

Добавьте распечатки этих переменных, соберите выходные данные из многих прогонов и вычислите среднее значение. Или, может быть, я не понимаю вопроса ...

...