type str operator for dict abs python type-conversion python-2.x built-in

operator - str python



¿Para qué se utiliza la coacción() de Python? (2)

¿Cuáles son los usos comunes de la función de coerce incorporada de Python? Puedo ver la aplicación si no conozco el type de valor numérico según la documentación , pero ¿existen otros usos comunes? Supongo que también se llama coerce() al realizar cálculos aritméticos, por ejemplo , x = 1.0 +2 . Es una función incorporada, así que, presumiblemente, ¿tiene algún uso común potencial?


Es un remanente de Python temprano , básicamente hace que una tupla de números sea el mismo tipo de número subyacente, por ejemplo

>>> type(10) <type ''int''> >>> type(10.0101010) <type ''float''> >>> nums = coerce(10, 10.001010) >>> type(nums[0]) <type ''float''> >>> type(nums[1]) <type ''float''>

También es para permitir que los objetos actúen como números con clases antiguas.
(Un mal ejemplo de su uso aquí sería ...)

>>> class bad: ... """ Dont do this, even if coerce was a good idea this simply ... makes itself int ignoring type of other ! """ ... def __init__(self, s): ... self.s = s ... def __coerce__(self, other): ... return (other, int(self.s)) ... >>> coerce(10, bad("102")) (102, 10)


La programación del núcleo de Python dice: "La función coerce () proporciona que el programador no confíe en el intérprete de Python, sino en la conversión de tipos numérica personalizada".

p.ej

>>> coerce(1, 2) (1, 2) >>> >>> coerce(1.3, 134L) (1.3, 134.0) >>> >>> coerce(1, 134L) (1L, 134L) >>> >>> coerce(1j, 134L) (1j, (134+0j)) >>> >>> coerce(1.23-41j, 134L) ((1.23-41j), (134+0j))