eyecatch thumbnail

Python PEP8 コードのレイアウト

Profile picture
ルッチ / Lucci
2020.12.15

Contents


はじめに

どうも,たける@typememo です.

Python PEP8 コードのレイアウトについてです.


コードのレイアウト

インデント: 1レベルインデントにスペース4つ

個人的にはスペース2つが好き.

個人的には引数は一つずつ縦に並べるのが好き.

# 開き括弧に揃える
foo = long_function_name(var_one,
                         var_two,
                         var_three,
                         var_four)

# 引数とそれ以外を区別するため、スペースを4つ(インデントをさらに)加える
def long_function_name(
        var_one,
        var_two,
        var_three,
        var_four):
    print(var_one)

# 突き出しインデントはインデントのレベルを深くする
foo = long_function_name(
    var_one,
    var_two,
    var_three,
    var_four)

# if 文の後にコメントを追加する
if (this_is_one_thing and
    that_is_another_thing):
    # 両方の条件がtrueなので、処理を調整可能
    do_something()

my_list = [
    1, 2, 3,
    4, 5, 6,
]
result = some_function_that_takes_arguments(
    'a', 'b', 'c',
    'd', 'e', 'f',
)

タブか? スペースか? スペースを使え

Python2 のインタープリタに -t オプションをつけるとタブ文字があると警告してくれる.

さらに Python2 では -tt オプションをつけるとタブ文字があるとエラーになる.

Python2 使っている人はとにかく -t もしくは -tt オプション付けとけ.


1行の長さ: 最大79文字 or 最大72文字

最大79文字までに制限しろ.

docstring やコメントは最大72文字までに制限しろ.


2項演算子の前で改行しろ

2項演算子の前で改行せよ.

# 演算子と項を一致させやすい
income = (gross_wages
          + taxable_interest
          + (dividends - qualified_dividends)
          - ira_deduction
          - student_loan_interest)

空行

2行空けて定義するモノ: トップレベルの関数,クラス

1行空けて定義するモノ: クラス内部のメソッド

関数の中ではロジックの境目を表すために空行を控えめに使うと良い.


ソースファイルのエンコーディング: ASCII 一択

個人開発では utf-8 でも良いけど,非推奨.


import: 行を分けて import せよ

モジュールコメントや docstring の後に import 文を置け.

次の順番でグループ化し,グループの間は一行空けろ.

  1. 標準ライブラリ
  2. サードパーティに関連するもの
  3. ローカルな アプリケーション/ライブラリ に特有のもの

絶対 import しろ.

import os
import sys

from subprocess import Popen, PIPE

import mypkg.sibling
from mypkg import sibling
from mypkg.sibling import example

アンダースコア変数名は from future の後に置け

アンダースコア変数名は docstring の後, かつ from __future__ の後, 各 import の前に置け.

"""This is the example module.

This module does stuff.
"""

from __future__ import barry_as_FLUFL

__all__ = ['a', 'b', 'c']
__version__ = '0.1'
__author__ = 'Cardinal Biggles'

import os
import sys

おわりに

親ページに戻る

最後までお読みいただきありがとうございました.


愛用品


関連記事


Python 初学者へのお知らせ

約2時間で Python の基礎を学び、簡単なゲームを作ってみませんか?

そんな方に、Python の基本を実践的に学びたい人向けの講座、【無料】ゼロから始めるPythonプログラミング入門講座(週4開催)をお勧めします。

tech-ad-techgym-python

この講座で、無料でゲーム開発を通してプログラミングの基礎を身につけてみませんか?

少しでも気になった方は、上記のテキストリンクもしくは画像リンクから申し込みお願いします!

Python との楽しい日々をお過ごしください:)

大学生へのお知らせ

ここまで記事を読んでくれて本当に嬉しいです、ありがとうございます。

プログラミングを始めたばかりの頃って「やるぞ!」という気持ちは強めですが、 実際に取り組み始めると「何からどうやってどこまでやればいんだ?」 という感じで羅針盤を失うことが多いような気がします。(実体験)

そんな勉強熱心で向上心高めなんだけど目指す姿が曖昧な大学生の方に感謝の意も込めて、就職活動までサポートするプログラミングスクール「レバテックカレッジ」を紹介します。↓

Levtech-college

「自走力」のあるエンジニアを最短3ヶ月で目指せるカリキュラムが月額30,000円で用意されていて、 現段階の「目指す姿が曖昧で何から手をつければいいかわからない状態」から脱却できます。

自分は実際にIT企業で働いていますが、「自走力」のあるエンジニアの方にはいつも助けられています。

なので、目指す姿が曖昧な人はとりあえずレバテックカレッジが導いてくれる 「自走力のあるエンジニア」を目指してみるのはスタートダッシュとしてはアリです。

レベルアップしてからジョブチェンするのはRPGでも常套手段ですし、 レバテックカレッジで一通りのスキルを習得してから自分の目指す姿を再定義するといいかもです。

「自走力のあるエンジニア」って実際どんなエンジニアなの? 何から手をつければいいかわからないから教えて欲しい、 という人は上のテキストリンク/画像リンクから「無料相談会」への申し込みをお願いします。

よきエンジニアライフを!