первый вариант читабелнее (в терминальных случаях является безальтернативно верным)
но он порождает новую переменную в контексте вызова, что сказывается как на времени так и на памяти: такой кейс вам приведу
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
имеем в среднем раза в полтора разницу по скорости
что вам важнее в данный момент сильно зависит от конкретной задачи