Соглашения и PEP 8

Принципы разработки программного обеспечения на Python

Adam Spannbauer

Machine Learning Engineer at Eastman

Что такое соглашения?

Кулачное приветствие

Поклон

Рукопожатие

Логотип Python

Принципы разработки программного обеспечения на Python

Знакомство с PEP 8

PEP 8

«Код читают гораздо чаще, чем пишут»

Принципы разработки программного обеспечения на Python

Нарушение PEP 8

#define our data
my_dict ={
    'a'  : 10,
'b': 3,
    'c'  :   4,
             'd': 7}
#import needed package
import numpy as np
#helper function
def DictToArray(d):
    """Convert dictionary values to numpy array"""
    #extract values and convert
              x=np.array(d.values())
              return x
print(DictToArray(my_dict))
array([10,  4,  3,  7])
Принципы разработки программного обеспечения на Python

Соблюдение PEP 8

# Import needed package
import numpy as np

# Define our data
my_dict = {'a': 10, 'b': 3, 'c': 4, 'd': 7}


# Helper function
def dict_to_array(d):
    """Convert dictionary values to numpy array"""
    # Extract values and convert
    x = np.array(d.values())
    return x


print(dict_to_array(my_dict))
array([10,  4,  3,  7])
Принципы разработки программного обеспечения на Python

Инструменты PEP 8

PEP 8 в PyCharm

Пакет pycodestyle

Принципы разработки программного обеспечения на Python

Использование pycodestyle

datacamp@server:~$ pip install pycodestyle
datacamp@server:~$ pycodestyle dict_to_array.py
dict_to_array.py:5:9: E203 whitespace before ':'
dict_to_array.py:6:14: E131 continuation line unaligned for hanging indent
dict_to_array.py:8:1: E265 block comment should start with '# '
dict_to_array.py:9:1: E402 module level import not at top of file
dict_to_array.py:11:1: E302 expected 2 blank lines, found 0
dict_to_array.py:13:15: E111 indentation is not a multiple of four
Принципы разработки программного обеспечения на Python

Вывод pycodestyle

Вывод ошибок pycodestyle

Принципы разработки программного обеспечения на Python

Давайте потренируемся!

Принципы разработки программного обеспечения на Python

Preparing Video For Download...