2020年7月25日

Python 3.8 の細かな改善点

Python 3.8 の変更点をまとめたページに、以下のような内容があります。


どういうことかと言うと、以下のように finally節に continue があると、Python 3.7 まではコンパイルエラーが発生していました。
while True:
    try:
        pass
    finally:
        continue

SyntaxError: 'continue' not supported inside 'finally' clause
普通に考えれば、continue により while まで戻るのが当然です。が、実装上の都合として、コンパイルエラーが起こっていました。随分淡白な対応なように思います。また、break や return は finally節の中でも動作するわけで、continue のみコンパイルエラーというのは意外過ぎる対応であると言えます。

Python 3.8 からは、finally節の中の continue が許可されるようになりました。言語として、少し改善されたのではと思います。

0 件のコメント:

コメントを投稿