En Python, las funciones como str(), int(), float(), etc. generalmente se utilizan para realizar conversiones de tipo. Sin embargo, estos requieren que sepa en el momento del desarrollo a qué tipo desea convertir. Un subproblema de un código Python que estoy tratando de escribir es como sigue:Reflexión de Python y conversión de tipo
Dadas dos variables, foo
y bar
, encontrar el tipo de foo
. (No se conoce en el momento del desarrollo, ya que es un código genérico). Luego, intente convertir bar
al tipo foo
. Si esto no se puede hacer, lanza una excepción.
Por ejemplo, supongamos que llama a la función que hace esto conv
. Su firma se vería
def conv(foo, bar) :
# Do stuff.
Se llamaría algo así como:
result = conv(3.14, "2.718") # result is now 2.718, as a float.
Impresionante. Nunca hubiera pensado que sería increíblemente fácil. También es sorprendente (soy nuevo en Python y estoy acostumbrado a los lenguajes de metal) es que funciona con builtins. – dsimcha
Parcialmente incorrecto. foo .__ class__ es solo el tipo de foo si foo es un objeto de estilo nuevo. De lo contrario, es solo la clase. –
Solo incorrecto, ya que dije 'tipo' cuando la clase sería más precisa. Pero él necesita la clase para esta conversión. Y en Python 3, la diferencia ya no existe. – oefe