Skip to content

内包表記の変数名が一貫していない #13

@yaneurao

Description

@yaneurao

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions