Форум сайта python.su
0
Приветвую.
Впорос такого характера. Что лучше - объявить переменную (которая станет глобальной, т.е. - вроде как нежелательной), или использовать просто return значения из функции?
def proc_get_pid(pidfile): try: proc_pid = open(pidfile, 'r').read().rstrip('\n') return proc_pid except IOError as e: print('ERROR: %s' % e) sys.exit(1) def cpu_get_usage(pid): cpu_info = psutil.Process(pid) cpu_perc = cpu_info.get_cpu_percent() return cpu_perc print('PID = %s; ' % proc_get_pid(pidfile)) print('CPU %% = %s;' % cpu_get_usage(int(proc_get_pid(pidfile))))
pid = int(proc_get_pid(pidfile)) print('PID = %s; ' % proc_get_pid(pidfile)) print('CPU %% = %s;' % cpu_get_usage(pid))
Офлайн
Ну вот смотрите, конкретно по вашему примеру, мое мнение:
два раза вызывается функция proc_get_pid (она также глобальна), сам по себе вызов функции- это затратная операция, и при этом два раза открывается и читается один и тот-же файл. Т.е. вот именно в этом примере считаю это неоправданно, а всего кода я не видел (если это отрывок). И кстати форматирование строк устаревшее, лучше применять метод строк format(…)
Офлайн
0
dimy44
Ну вот смотрите, конкретно по вашему примеру, мое мнение:два раза вызывается функция proc_get_pid (она также глобальна), сам по себе вызов функции- это затратная операция, и при этом два раза открывается и читается один и тот-же файл.
И кстати форматирование строк устаревшее, лучше применять метод строк format(…)
Отредактировано setevoy (Окт. 4, 2014 23:41:23)
Офлайн
857
setevoyПочему не приводишь к int сразу в функции?pid = int(proc_get_pid(pidfile))
Офлайн