В Python (3.7.5), есть ли разница в том, как обрабатываются / выполняются следующие два блока кода?
def outer_A(u,v,w):
def inner_A(x,y,z):
return ([u,v,w],[x,y,z])
return inner_A
innerA = outer_A(1,2,3) # returns function 'inner_A' w/ closure (u=1,v=2,w=3)
result = innerA(4,5,6) # returns tuple '([1,2,3],[4,5,6])'
from functools import partial
def outer_B(u,v,w,x,y,z):
return ([u,v,w],[x,y,z])
innerB = partial(outer_B,1,2,3) # returns partial function 'outer_B' w/ baked args (u=1,v=2,w=3)
result = innerB(4,5,6) # returns tuple '([1,2,3],[4,5,6])
Если я знаю, что я всегда буду генерировать аргументы в этих двух группах (u, v, w) и (x, y, z), почему / когда я должен использовать одну реализацию вместо другой?
Есть другой, лучший способ сделать это?