質問するログイン新規登録

回答編集履歴

1

追記

2018/09/23 07:47

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -10,4 +10,24 @@
10
10
 
11
11
  ```Python
12
12
  gen = (A(B) for B in C)
13
- ```
13
+ ```
14
+
15
+ ---
16
+ > 書き方という点では理解しましたが、なぜそれでジェネレータとして認識されるのかが気になっています。
17
+
18
+ 構文がどう解析されているか、という話でしょうか。
19
+ それならば言語リファレンスを見てみてはいかがでしょう。
20
+ > ```
21
+ generator_expression ::= "(" expression comp_for ")"
22
+ > ```
23
+
24
+ > ```
25
+ comp_for ::= [ASYNC] "for" target_list "in" or_test [comp_iter]
26
+ > ```
27
+
28
+ 引用元:
29
+ - [Python 言語リファレンス » 式 (expression) » ジェネレータ式](https://docs.python.jp/3/reference/expressions.html#generator-expressions)
30
+ - [Python 言語リファレンス » 式 (expression) » リスト、集合、辞書の表示](https://docs.python.jp/3/reference/expressions.html#displays-for-lists-sets-and-dictionaries)
31
+
32
+ 真面目に読むのはかなり骨なのでここでは避けますが、
33
+ なんとなく`(... for ... in ...)`の形が解析上見られていることは読み取れます。