dsi*_*cha 7 python reflection introspection type-conversion python-datamodel
在Python中,str(),int(),float()等函数通常用于执行类型转换.但是,这些要求您在开发时了解要转换为的类型.我正在尝试编写的一些Python代码的子问题如下:
给出两个变量,foo并bar找到类型foo.(在开发时不知道,因为这是通用代码.)然后,尝试转换bar为任何类型foo.如果无法做到这一点,请抛出异常.
例如,假设您调用执行此操作的函数conv.它的签名看起来像
def conv(foo, bar) :
# Do stuff.
Run Code Online (Sandbox Code Playgroud)
它会被称为:
result = conv(3.14, "2.718") # result is now 2.718, as a float.
Run Code Online (Sandbox Code Playgroud)
oef*_*efe 11
使用foo.__class__获得的类型foo.然后调用它将bar转换为foo的类型:
def conv(foo, bar) :
return foo.__class__(bar)
Run Code Online (Sandbox Code Playgroud)
当然,这仅适用于foo具有知道如何转换条形的构造函数的类型.