在python中有一種方法可以用n個嵌套元組初始化一個類嗎? x是0到n,y是一個空列表。用n個嵌套元組初始化一個類
我的意思是:
假設你有一個類,如:
class NestedTuples:
def __init__(self, tuple):
self.tuple = ?
所以,如果你是做這樣的事情:
t = NestedTuples(4)
會造成:
((0, []), (1, []), (2, []), (3, []))
在python中有一種方法可以用n個嵌套元組初始化一個類嗎? x是0到n,y是一個空列表。用n個嵌套元組初始化一個類
我的意思是:
假設你有一個類,如:
class NestedTuples:
def __init__(self, tuple):
self.tuple = ?
所以,如果你是做這樣的事情:
t = NestedTuples(4)
會造成:
((0, []), (1, []), (2, []), (3, []))
這工作*:
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
參數。你不應該創建一個與其中一個內置插件具有相同名稱的變量。這樣做會掩蓋它。
簡單代碼:
param = 4
nestedTuple = tuple([(i,[]) for i in range(param)])
print nestedTuple
輸出:
((0, []), (1, []), (2, []), (3, []))
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, []))
謝謝:)沒有意識到它會是這麼簡單。 – Sc4r