Python中如何提取变量的构造类型并将其用于转换另一变量的类型
解决方案
Python中可以直接通过内置type()函数获取变量的构造类,不需要操作元类,即可实现你要的动态类型转换需求,无需编写大量类型判断分支。
实现代码
def copyType(destination_var, source_var): try: # type(source_var) 直接返回源变量对应的类对象 type_class = type(source_var) return type_class(destination_var) except: raise TypeError # 测试用例 variable1 = "157" variable2 = 34 print(type(variable1)) print(type(variable2)) variable2 = copyType(variable2, variable1) print(type(variable2))
输出结果
<class 'str'> <class 'int'> <class 'str'>
原理说明
type()传入单个参数时,返回值就是该对象所属的类本身,和直接引用str、int等类对象完全等价,调用该类对象即可执行对应类型的转换逻辑。- 该方案同时支持内置类型、自定义类型的转换,只要目标类的构造函数支持传入单个参数即可完成转换,不满足构造条件时会抛出
TypeError,符合预期的异常处理逻辑。
内容的提问来源于stack exchange,提问作者Osamoele
相关产品推荐
相关产品推荐

