我有一個發電機功能,產生列表的功率集。我在裏面放了一些打印語句,但是當我運行這個項目時,他們都沒有打印任何東西。如果我編寫一個只打印「測試」的函數,它可以工作。有人可以幫忙嗎?發電機功能不工作python
def powerSet(items):
print 'test'
N = len(items)
print N
for i in range(2**N):
combo = []
for j in range(N):
if (i >> j) % 2 == 1:
combo.append(items[j])
print combo
yield combo
list = ['a', 'b', 'c']
powerSet(list)
迭代powerSet(list) – haifzhan
在你自己的代碼中使用像'list'這樣的內建名稱作爲變量是一個非常糟糕的主意。像這樣消耗一個生成器的自然方式是'list(generator(whatever))',但是因爲你已經反彈了名字'list',那實際上並不能正常工作。 – Blckknght