auの日記

プログラミング初心者の日記。(auはハンドルネームです)

Pythonで文字列の足し算をしようとすると波線が引かれる

auです。

VSCodePythonを使っています。
そこでは、環境変数を代入した文字列同士を足し算していたのですが、ずっと赤い波線が引かれていたので気になっていました。実行しても(一応)なんともなく動きます。

なんでかなーと思ったのですが、自分なりに理解したのでメモしておこうと思います。

コードと波線の内容

folder_path = getenv('OUTPUT_FOLDER_PATH')
file_name = getenv('FILE_NAME')
path = folder_path + file_name # ここで波線が引かれている
(variable) path: str | None
Operator "+" not supported for types "str" and "str | None"
  Operator "+" not supported for types "str" and "None"Pylance (reportGeneralTypeIssues)

エラーの内容としては、strとNoneの足し算に対応してないよという感じです。
具体的には、strとNoneの可能性があるからよろしくないということだと思います。違っていたら指摘してください。

解決法

解決法は、strにキャストしてあげれば大丈夫です。

path = str(folder_path) + str(file_name)

これでstr型でくることが約束されているので、文字列同士の足し算が可能です。stringモジュールとか使った方が適切なのかもしれないです。

ちなみにNoneが返ってくると、「NoneFILENAME」のようになるのですごく気持ち悪くなります。Noneがそのまま文字列として使われるようです。