問題解説)PEP 8が推奨する変数アノテーションの書き方について、正しいものを選択肢の中から選びなさい。

当コラムでは、PythonZen & PEP 8 検定試験(こちらでオンライン受験できます)で出題されている問題の解説を行なっています。当コラムシリーズを読んで自信がついたら、ぜひ試験に挑戦してみてくださいね。

今回のコラムで解説する試験問題はこちらです。

問題

PEP 8が推奨する変数アノテーションの書き方について、正しいものを選択肢の中から選びなさい。

  1. code:int
  2. code : int
  3. code:int=0
  4. code: int = 0

解答のヒント

PEP 8「変数アノテーション」(Variable Annotations )が今回の問題の出題範囲になっています。

モジュールレベル変数、クラス変数、インスタンス変数、ローカル変数のアノテーションは、コロンの後に半角スペースを入れます。

Annotations for module level variables, class and instance variables, and local variables should have a single space after the colon.

コロンの前には半角スペースを入れません。

There should be no space before the colon.

右辺がある代入の場合は、等号の前後に半角スペースを1つずつ入れます。

If an assignment has a right hand side, then the equality sign should have exactly one space on both sides:

適切な書き方:

# Correct:

code: int

class Point:
    coords: Tuple[int, int]
    label: str = '<unknown>'

不適切な書き方:

# Wrong:

code:int  # No space after colon
code : int  # Space before colon

class Test:
    result: int=0  # No spaces around equality sign

以上のガイドラインを読んで、正解を導けましたでしょうか?
ガイドラインには具体的なサンプルコードもたくさん載っていますので、しっかりと確認しておきましょう。

正解はこちら

ガイドラインには、ルールとして従わなくてはいけないこと(must)、推奨されること(should)、各ルールの適用例・非適用例(cases)が書いてあります。ルールを機械的に覚えるだけではなく、なぜこのルールがあるのかを意識していくと、理解が深まりますね。

自信がついてきたら PythonZen & PEP 8 検定試験 で実際に試験を受けて、正解を当ててみましょう。

そして、みなさんのPython開発にも活かしていただけると嬉しいです。

PAGE TOP