[Python-es] Para que se usa el "%"
Luis Miguel Morillas
morillas en gmail.com
Mar Nov 23 18:20:24 CET 2010
El día 23 de noviembre de 2010 15:34, Gustavo Cabral
<gmcabral en gmail.com> escribió:
> Hola:
> Soy nuevo en esto y leí algunos artículos para comenzar con Python,
> pero necesito con urgencia entender que significa el % en el código,
> para ser más claro, tengo este pedazo de código, el cual retorna unos
> valores de una BD, pero no logro entender para que se usa el "%":
>
> for i in ids:
> #get the id of the current function of the employee of identifier "i"
> sql_req= """
> SELECT f.id AS func_id
> FROM hr_contract c
> LEFT JOIN res_partner_function f ON (f.id = c.function)
> WHERE
> (c.employee_id = %d)
> """ % (i,)
>
> Me podrían ayudar con esto? no entiendo el uso del "%"
> Muchas Gracias.
>
El ejemplo está incompleto, pero me parece un poco raro. Como te
comentan el "%" es un operador de sustitución de cadenas pero NO se
debe de utilizar en las cadenas que se mandan a execute de un cursor
si estás trabajando con bases de datos. Aquí tienes una explicación
http://wiki.python.org/moin/DbApiFaq#HowdoIpassparameterstothecursor.executemethod.3F
Si trabajas con bases de datos, tienes que usar el paramstyle del
conector que estás usando. Y si vas a realizar múltiples consultas,
mejor usar executemany que una serie encadenadas de execute, como
parece que va a lanzar el ejemplo.
-- lm
> Gustavo.-
> --
>
> Linux es Libertad
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
Más información sobre la lista de distribución Python-es