当前位置:  开发笔记 > 编程语言 > 正文

Python反射和类型转换

如何解决《Python反射和类型转换》经验,为你挑选了2个好方法。

在Python中,str(),int(),float()等函数通常用于执行类型转换.但是,这些要求您在开发时了解要转换为的类型.我正在尝试编写的一些Python代码的子问题如下:

给出两个变量,foobar找到类型foo.(在开发时不知道,因为这是通用代码.)然后,尝试转换bar为任何类型foo.如果无法做到这一点,请抛出异常.

例如,假设您调用执行此操作的函数conv.它的签名看起来像

def conv(foo, bar) :
    # Do stuff.

它会被称为:

result = conv(3.14, "2.718")  # result is now 2.718, as a float.

nosklo.. 16

那将是最好的:

type(foo)(bar)


oefe.. 11

使用foo.__class__获得的类型foo.然后调用它将bar转换为foo的类型:

def conv(foo, bar) :
    return foo.__class__(bar)

当然,这仅适用于foo具有知道如何转换条形的构造函数的类型.



1> nosklo..:

那将是最好的:

type(foo)(bar)



2> oefe..:

使用foo.__class__获得的类型foo.然后调用它将bar转换为foo的类型:

def conv(foo, bar) :
    return foo.__class__(bar)

当然,这仅适用于foo具有知道如何转换条形的构造函数的类型.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有