-
-
Notifications
You must be signed in to change notification settings - Fork 329
Open
Description
deep-learning-from-scratch-3/dezero/core.py
Line 198 in 976e9bf
| self.outputs = [weakref.ref(y) for y in outputs] |
| self.outputs = [weakref.ref(output) for output in outputs] |
書籍のほうでは、後者になっています。おそらく、前者が直し忘れだと思われます。
それに関連してですが、内包表記の変数名が一貫していないのは感心しません。例えば、
| xs = [x.data for x in inputs] |
こういうところで、変数名を何故xにするのでしょうか。(inputにしないのは何故なのか。outputsのときだけ変数名をoutputとするのは何故なのか) 一貫性がなくて見ていて気持ち悪いです。
ついでに書籍のほう、p.249
y = self.outputs[0]()
ここ、weakrefだから"()"をつけていることを書籍のほうのソースコード上にも"#weakref"のようにコメントがついていたほうが親切だと思います。
それから、
x, = self.inputs
tailing commaは、このコードを読まされる側としては見落としやすく、バグの原因になりやすいため、括弧をつけたほうがよろしいです。
cf.https://www.python.org/dev/peps/pep-0008/#when-to-use-trailing-commas
例)
(x,) = self.inputs
Metadata
Metadata
Assignees
Labels
No labels