Conventies en PEP 8

Software-engineeringprincipes in Python

Adam Spannbauer

Machine Learning Engineer at Eastman

Wat zijn conventies?

Vuistboks

Buigende Persoon

Handdruk

Python Logo

Software-engineeringprincipes in Python

Introductie PEP 8

PEP 8

"Code wordt veel vaker gelezen dan geschreven"

Software-engineeringprincipes in Python

PEP 8 Overtreden

#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])
Software-engineeringprincipes in Python

PEP 8 Volgen

# Importeer benodigde package
import numpy as np

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


# Helperfunctie
def dict_to_array(d):
    """Converteer dictionarywaarden naar numpy-array"""
    # Waarden extraheren en converteren
    x = np.array(d.values())
    return x


print(dict_to_array(my_dict))
array([10,  4,  3,  7])
Software-engineeringprincipes in Python

PEP 8 Tools

PEP 8 met PyCharm

pycodestyle package

Software-engineeringprincipes in Python

pycodestyle Gebruiken

datacamp@server:~$ pip install pycodestyle
datacamp@server:~$ pycodestyle dict_to_array.py
dict_to_array.py:5:9: E203 spatie voor ':'
dict_to_array.py:6:14: E131 vervolgregel niet uitgelijnd voor hangende inspringing
dict_to_array.py:8:1: E265 blokcommentaar moet beginnen met '# '
dict_to_array.py:9:1: E402 module-import niet bovenaan bestand
dict_to_array.py:11:1: E302 verwacht 2 lege regels, gevonden 0
dict_to_array.py:13:15: E111 inspringing is geen veelvoud van vier
Software-engineeringprincipes in Python

Uitvoer van pycodestyle

pycodestyle foutuitvoer

Software-engineeringprincipes in Python

Laten we oefenen!

Software-engineeringprincipes in Python

Preparing Video For Download...