[英]Need to understand Python generator object
在下面的:
name = 'TODD'
chars = set('AEIOU')
for ii in range(-1, int(math.copysign(len(name) + 1, -1)), -1):
if any((cc in chars) for cc in name[ii]):
print 'Found'
else:
print 'Not Found'
我知道任何(...)里面的東西都是生成器對象。 我不明白的是缺少括號 - 如果括號屬於any()函數,那么生成器表達式周圍是否應該有另一組括號?
謝謝。
不,不需要額外的parens,實際上也不是你正在測試的“布爾表達式”所必需的parens,請看這兩個簡單的例子:
In [37]: any(i > 10 for i in range(19))
Out[37]: True
In [38]: all(i > 10 for i in range(19))
Out[38]: False
你所擁有的是一個帶有單個參數的函數調用(你的生成器表達式)所以不需要parens。 有關更多信息,請參閱生成器表達式文檔 。
對於只有一個參數(生成器表達式)的函數調用,每個文檔不需要它們
對於只有一個參數的調用,可以省略括號。 請參閱呼叫詳細信息部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.