2016-10-13 284 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)等一樣。