「pep8」の版間の差分

提供: Python入門
移動: 案内検索
(ページの作成:「pep8 とは、pythonのコードスタイルガイドラインです。また、コードスタイルをチェックするツールです。autopep8は、ソース...」)
(相違点なし)

2014年5月22日 (木) 15:31時点における版

pep8 とは、pythonのコードスタイルガイドラインです。また、コードスタイルをチェックするツールです。autopep8は、ソースコードを自動で修正できます。

読み方

pep8
ぴーえーぴーえいと

概要

pep8を使用することで、ソースコードのソースコードスタイルをチェックできます。編集中のソースコードのコードスタイルをflake8-vimで自動でチェックできます。autopep8は、ソースコードのスタイルを修正できます。

インストール

sudo pip install pep8

ソースコード

以下は、ソースコードガイドラインで、問題のあるコードです。

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
#
# Copyright © 2014 kaoru <kaoru@bsd>
def main():
    echo 'main'
 
if __name__ == '__main__':
    main()

実行例

コードスタイルのチェック

$ pep8 main.py
main.py:6:1: E302 expected 2 blank lines, found 0

ソースコードも表示する

$ pep8 main.py --show-source
main.py:6:1: E302 expected 2 blank lines, found 0
def main():
^

詳細も表示する

$ pep8 main.py --show-source --show-pep8
main.py:6:1: E302 expected 2 blank lines, found 0
def main():
^
    Separate top-level function and class definitions with two blank lines.
 
    Method definitions inside a class are separated by a single blank line.
 
    Extra blank lines may be used (sparingly) to separate groups of related
    functions.  Blank lines may be omitted between a bunch of related
    one-liners (e.g. a set of dummy implementations).
 
    Use blank lines in functions, sparingly, to indicate logical sections.
 
    Okay: def a():\n    pass\n\n\ndef b():\n    pass
    Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
 
    E301: class Foo:\n    b = 0\n    def bar():\n        pass
    E302: def a():\n    pass\n\ndef b(n):\n    pass
    E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
    E303: def a():\n\n\n\n    pass
    E304: @decorator\n\ndef a():\n    pass

autopep8で自動でソースコードをpep8に対応する

$ sudo pip install autopep8			      
$ autopep8 main.py

ソースコードを修正する例です。

$ autopep8 main.py
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
#
# Copyright © 2014 kaoru <kaoru@bsd>
 
 
def main():
    print 'main'
 
if __name__ == '__main__':
    main()

ファイルを上書きして修正する例です。

$ autopep8 -i main.py

関連項目