前提・実現したいこと
python3系向けにスクリプトを作成しました。
2系がデフォルトの環境もあるので、2系の場合には「2系は非対応です」といったメッセージを表示したいと考えています。
発生している問題・エラーメッセージ
サンプルを作って動かしたところ、関数戻り値のアノテーションの箇所にて syntaxerror が発生しました。
(サンプルは別途記載しますが、関数定義前にpythonのバージョンをチェックする処理があります。)
$ python2 script.py File "script.py", line 9 def func_() -> str: ^ SyntaxError: invalid syntax
pythonはスクリプト言語なので上から下に処理が進むと考えているのですが、関数定義が先行して評価されるのでしょうか?
3系の書き方を直さずにすむ方法がありましたらご教示いただきたく思います。
該当のソースコード
試したスクリプトは下記になります。
python
1# -*- coding: utf-8 -*- 2import sys 3 4if sys.version_info.major == 2: 5 print('2系は未対応') 6 sys.exit(1) 7 8 9def func_() -> str: 10 return 'func' 11 12 13if __name__ == "__main__": 14 print(func_())
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/06 01:45