タグ

ブックマーク / atsuoishimoto.hatenablog.com (1)

  • Pythonで++i - atsuoishimoto's diary

    この間、Pythonで変数のインクリメントないよね、って話がでた。こんなのだ。 i = 99 ++i print i ちなみに、Pythonでも ++i や --i と書くことはできる。書くことはできるが、Pythonでは ++ や -- はインクリメント/デクリメント演算子ではなく、単項の + や - を二つ続けて書いているだけで、こう書いたのと同じ結果になるだけだ。 ++i == +(+(i)) --i == -(-(i)) だが、ここで重要なのは、この式はコンパイルエラーにはならないという事実だ。コンパイルエラーにならないということは、すなわち抽象構文木(AST)を作れるということだ。そしてASTを作れるということは、みんな大好きastモジュールで好き勝手できるということなのである。 import ast class InclTransformer(ast.NodeTransform

    Pythonで++i - atsuoishimoto's diary
  • 1