Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

Pythonのwith open()などのカッコ中の「=」の前後に、スペースは不要なのですか?

f:id:nana_yu:20190411183824p:plain

PyQサポートのkamekoです。今日は、関数呼び出し時のキーワード引数の書き方について解説します。

質問

PEP8のクエストを消化した際に 「=の前後にスペースを入れる」とあったと思うのですが、以下のようなファイルを開くコードは このルールに当てはまらないのですが、これは何か理由があるのでしょうか。

with open('input/sales_row', encoding='utf-8') as f:

回答

通常の「=」の前後はスペースを入れるのですが、関数呼出し時にキーワード引数を指定する場合は「=」の前後にスペースを入れずに書きます。

引用: PEP 8 -- Style Guide for Python Code

Don't use spaces around the = sign when used to indicate a keyword argument, or when used to indicate a default value for an unannotated function parameter.

(キーワード引数を指定する場合、関数定義時にデフォルト引数を指定する場合は「=」の前後にスペースは使いません。)

PEP8の書き方:

def complex(real, imag=0.0):
    return magic(r=real, i=imag)

PEP8に則していない書き方:

def complex(real, imag = 0.0):
    return magic(r = real, i = imag)

www.python.org

Copyright ©2017- BeProud Inc. All rights reserved.