2014-01-28 88 views
0

在python中有一種方法可以用n個嵌套元組初始化一個類嗎? x是0到n,y是一個空列表。用n個嵌套元組初始化一個類

我的意思是:

假設你有一個類,如:

class NestedTuples: 
    def __init__(self, tuple): 
     self.tuple = ? 

所以,如果你是做這樣的事情:

t = NestedTuples(4) 

會造成:

((0, []), (1, []), (2, []), (3, [])) 

回答

2

這工作*:

class NestedTuples: 
    def __init__(self, num): 
     self.tuple = tuple((x, []) for x in range(num)) 

請參見下面的演示:

>>> class NestedTuples: 
...  def __init__(self, num): 
...   self.tuple = tuple((x, []) for x in range(num)) 
... 
>>> t = NestedTuples(4) 
>>> t.tuple 
((0, []), (1, []), (2, []), (3, [])) 
>>> 

最後,這裏是參考。


*注:我不得不重新命名的NestedTuples.__init__tuple參數。你不應該創建一個與其中一個內置插件具有相同名稱的變量。這樣做會掩蓋它。

+0

謝謝:)沒有意識到它會是這麼簡單。 – Sc4r

1

簡單代碼:

param = 4 
nestedTuple = tuple([(i,[]) for i in range(param)]) 
print nestedTuple 

輸出:

((0, []), (1, []), (2, []), (3, [])) 
1
In [74]: class NestedTuples: 
    ...:  def __init__(self, n): 
    ...:   self.tuple = tuple((i, []) for i in range(n)) 
    ...:   

In [75]: t = NestedTuples(4) 

In [76]: t.tuple 
Out[76]: ((0, []), (1, []), (2, []), (3, []))