@nameless_king

Как писать правильнее?

Здравствуйте. Подскажите какой вариант более pythonic
Например, первый
a = func(cat, dog)
res = another_func(pets=a)

Второй
res = another_func(pets=func(cat, dog))
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
@antares4045
первый вариант читабелнее (в терминальных случаях является безальтернативно верным)
но он порождает новую переменную в контексте вызова, что сказывается как на времени так и на памяти: такой кейс вам приведу

import datetime
def fun(a,b):
    return a + b
def fun2(arg1=1, arg2=2):
    return arg1 + arg2
print("вариант 1")
for j in range(10):
    start = datetime.datetime.now()
    for i in range(10000):
        a=fun(5, 6)
        fun2(arg2=a)
    end = datetime.datetime.now()
    print(end - start)
print("===================")
print("вариант 2")
for j in range(10):
    start = datetime.datetime.now()
    for i in range(10000):
        fun2(arg2=fun(5, 6))
    end = datetime.datetime.now()
    print(end - start)

вывод:
вариант 1
0:00:00.006048
0:00:00.002219
0:00:00.001937
0:00:00.001955
0:00:00.001893
0:00:00.001886
0:00:00.001879
0:00:00.001891
0:00:00.001895
0:00:00.001887
===================
вариант 2
0:00:00.001541
0:00:00.001551
0:00:00.001551
0:00:00.001546
0:00:00.001564
0:00:00.001535
0:00:00.001537
0:00:00.001546
0:00:00.001516
0:00:00.001704


имеем в среднем раза в полтора разницу по скорости

что вам важнее в данный момент сильно зависит от конкретной задачи
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Lord_of_Rings
@Lord_of_Rings
Python developer
Если говорить о красоте кода, то первый вариант лучше.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы