Usted dice
Parece que pitón está haciendo de forma automática la conversión del tipo de la lista de tupla
Eso es dudosa. Dado que las listas y las tuplas son sequence types, ambas implementan muchos de los mismos comportamientos, y la biblioteca de GUI que esté utilizando no necesita ninguno de los comportamientos de solo lista.
Es probablemente bien para hacer esto en muchos casos, pero tenga en cuenta que las listas toman un poco más de espacio que las tuplas:
>>> sys.getsizeof((1, 2))
72
>>> sys.getsizeof([1, 2])
88
y puede ser más lenta que las tuplas en algunas cosas:
>>> lst, tup = [1, 2], (1, 2)
>>> def unpack(x):
... a, b = x
...
>>> %timeit unpack(tup)
10000000 loops, best of 3: 163 ns per loop
>>> %timeit unpack(lst)
10000000 loops, best of 3: 172 ns per loop
Estos son muy pequeñas diferencias que no importará hasta llegar a escalas mucho más grandes - como en mil millones de llamadas - s o el intercambio podría valer la pena.
Aún así, no veo que la gente haga esto muy a menudo. Parece un buen truco de legibilidad, pero podría tener consecuencias inesperadas en algunas circunstancias. Por ejemplo, si pasa una lista que intenta usar nuevamente más tarde, debe tener cuidado de no modificarla dentro de la función. Finalmente, como correctamente señala J.F. Sebastian, las tuplas y las listas tienden a significa cosas ligeramente diferentes; usarlos de formas no convencionales podría negar el impulso de legibilidad que buscas.
Me gusta la forma en que lo ha escrito, parece más bien definido. – jamylak
Python no está "haciendo una conversión de tipo de lista a tupla". Esto es [pato escribiendo] (http://en.wikipedia.org/wiki/Duck_typing) en acción: presumiblemente 'window.set_pos' requiere una secuencia de dos elementos, pero no necesariamente un 2-'tuple' (digo presumiblemente ya que no sé de dónde viene 'window.set_pos' o qué hace). – Chris
Vuelva a escribir la función para tomar dos argumentos en lugar de uno 2-tuple. –