[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