Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 4, 2014 21:37:10

setevoy
От: Kiev, UA
Зарегистрирован: 2013-02-22
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Объявить переменную - или вызывать значение из функции?

Приветвую.

Впорос такого характера. Что лучше - объявить переменную (которая станет глобальной, т.е. - вроде как нежелательной), или использовать просто 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))))

В последней строке получается целых 4 скобки, что вроде как не украшает код…

Правильнее (“красивее”, “читабельнее”) ли сделать так:

pid = int(proc_get_pid(pidfile))
print('PID = %s; ' % proc_get_pid(pidfile))
print('CPU %% = %s;' % cpu_get_usage(pid))

Офлайн

#2 Окт. 4, 2014 22:35:14

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Объявить переменную - или вызывать значение из функции?

Ну вот смотрите, конкретно по вашему примеру, мое мнение:
два раза вызывается функция proc_get_pid (она также глобальна), сам по себе вызов функции- это затратная операция, и при этом два раза открывается и читается один и тот-же файл. Т.е. вот именно в этом примере считаю это неоправданно, а всего кода я не видел (если это отрывок). И кстати форматирование строк устаревшее, лучше применять метод строк format(…)

Офлайн

#3 Окт. 4, 2014 23:19:39

setevoy
От: Kiev, UA
Зарегистрирован: 2013-02-22
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Объявить переменную - или вызывать значение из функции?

dimy44
Ну вот смотрите, конкретно по вашему примеру, мое мнение:два раза вызывается функция proc_get_pid (она также глобальна), сам по себе вызов функции- это затратная операция, и при этом два раза открывается и читается один и тот-же файл.

Т.е. - лучше один раз создать глобальную переменную типа pid = int(proc_get_pid(pidfile) - и дальше пользоваться ей? Меняться в процессе работы она не будет, да.

И кстати форматирование строк устаревшее, лучше применять метод строк format(…)

Это вы про print('text %s' % var) ?

UPD Да, про print(). Как-то даже не обращал внимания на него, привык через % писать, хотя .format() часто встречал. Надо будет почитать ещё и начинать пользоваться.

Отредактировано setevoy (Окт. 4, 2014 23:41:23)

Офлайн

#4 Окт. 5, 2014 01:16:21

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Объявить переменную - или вызывать значение из функции?

setevoy
pid = int(proc_get_pid(pidfile))
Почему не приводишь к int сразу в функции?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version