2016-10-13 154 views
3

在Python 2.7中,我想根据另一个变量初始化一个变量类型。根据另一个变量类型初始化变量

例如,我想要做的事,如:

var_1 = type(var_2) 

有一个简单/快速的方法来做到这一点?

+0

我们在讨论多少种不同的类型? 'isinstance()'通常是比'type()'更好的解决方案(*通常*,并不总是)。 – cdarke

+0

使用以可迭代对象作为参数并定义相同类型的变量的函数 –

回答

3

刚刚创建另一个实例

var_1 = type(var_2)() 

请注意,如果你不知道该对象是否具有非默认构造函数,你不能依靠上面,但你可以使用copydeepcopy(你“非空”对象

import copy 
var_1 = copy.copy(var_2) # or copy.deepcopy 

你可以使用这两个结合,后者作为后备机制

注:deepcopy将确保您的第二个目标是从第一个完全独立的(如果有列表的列表,例如)

+0

谢谢!还有一个关于复制库的问题。通过阅读文档看起来像copy.deepcopy()更适合于这个目的,或者我错了吗? –

+0

你是对的。检查我的编辑。 –

2
a = 1    # a is an int 
a_type = type(a) # a_type now contains the int-type 
b = '1'   # '1' is a string 
c = a_type(b)  # c is now an int with the value 1 

所以你可以使用一个type()变量的类型。然后,您可以将此类型存储在变量中,然后可以使用该变量,就像使用int(b),str(b),float(b)等一样。