Писането на работещ код не винаги е достатъчно; трябва да се опитате да напишете добре структуриран код, който също е лесен за разбиране. Чистият код ще улесни за вас — и за другите — поддържането на вашия софтуер.
Python има много характеристики и функции, които могат да ви помогнат да пишете по-чист код. Ето някои от най-добрите.
1. Автоматизирайте затварянето на ресурси с Context Manager
Ръчното затваряне на ресурси може да бъде неудобно, когато кодът ви взаимодейства с много ресурси. Може да забравите да затворите ресурс. Това кара вашата програма да използва системните ресурси неефективно, което може да доведе до a изтичане на памет.
Този код отваря файл, след което го затваря ръчно:
файл = отворен('test.txt', "р")
file_contents = file.read()
file.close()
думи = file_contents.split(' ')
word_count = len (думи)
печат (брой_слова)
Можете да автоматизирате затварянето на файла с помощта на контекстен мениджър. Контекстните мениджъри управляват ресурсите вместо вас, така че не е нужно да помните да ги управлявате ръчно. Използвай
с израз за създаване на контекст за управление на ресурс:с отворен('test.txt', "р") като файл:
file_contents = file.read()
думи = file_contents.split(' ')
word_count = len (думи)
печат (брой_слова)
Кодът в този блок се изпълнява в контекста на файловия обект, който отворен се завръща. Python автоматично затваря този файл, когато кодът напусне този контекст, дори ако възникне изключение.
2. Писане на по-чисти условни изрази
Може да откриете, че пишете много ненужен код, когато се занимавате с оператори if-else. Python има троични оператори, които ще ви помогнат да пишете по-компактни изрази. Кодовият блок по-долу показва нормален оператор if-else.
състояние = Вярно
ако състояние:
x = 1
друго:
x = 0
печат (x)
Можете да пренапишете този код с помощта на троичен оператор, който ви позволява да напишете условието в един ред код.
състояние = Вярно
x = 1ако състояние друго0
печат (x)
Важно е да се отбележи, че трябва да използвате троични оператори, когато прилагате проста логика. В по-сложна логика и вложени условни изрази троичният оператор може да стане труден за разбиране.
3. Проследяване на елементи с функцията за изброяване
Когато итерирате върху списък на Python, можете да получите достъп до индекса на текущия елемент по два начина. Един от начините е използването на традиционния for цикъл. Това работи добре, но кодът не е толкова чист, колкото би могъл да бъде. Освен това изисква ръчно инициализиране на индекса.
автомобили = ['Бугати', "Мерцедес", "Тойота"]
индекс = 0
за кола в автомобили:
печат (индекс, кола)
индекс += 1
Другият начин е използването на вградената в Python функция за изброяване. Това ще ви позволи достъп до индекса и съответната стойност в списъка по време на цикъл.
автомобили = ['Бугати', "Мерцедес", "Тойота"]
за индекс, кола в изброявам (коли):
печат (индекс, кола)
Вече не е нужно да следите ръчно индекса.
4. Цикъл върху няколко списъка с функцията Zip
Можете също да използвате функцията за изброяване, за да преминете през няколко списъка наведнъж. Вземете индекса на първия списък, след което го използвайте за достъп до съответните стойности в други списъци.
английски_имена = ['храна', "вода", 'кола']
испански_имена = ['алименто', "agua", 'Автоматичен']
за индекс, име в изброяване (английски_имена):
испански = испански_имена [индекс]
печат (е' {име} на испански е {испански}')
Това работи добре, но ще трябва да напишете много ненужен код, ако броят на списъците се увеличи. За да напишете по-чист код, можете да използвате функцията zip и да предадете имената на вашия списък към нея.
английски_имена = ['храна', "вода", 'кола']
испански_имена = ['алименто', "agua", 'Автоматичен']
за английски, испански в zip (английски_имена, испански_имена):
печат (е' {Английски} на испански е {испански}')
Трябва да продължите да използвате функцията enumerate за цикъл върху един списък. Но ако преглеждате няколко списъка заедно, помислете за използването на функцията zip.
Когато въвеждате чувствителна информация, въведеното не трябва да се вижда като обикновен текст на екрана. Обичайният начин за приемане на входни данни в Python е да се използва функцията за въвеждане:
потребителско име = вход(„Потребителско име:“)
парола = въвеждане(„Парола:“)
печат („Влизам...“)
Функцията за въвеждане обаче прави паролата видима като обикновен текст на екрана по време на въвеждане. За да сте сигурни, че паролата не се показва на екрана, трябва вместо това да използвате функцията getpass:
от getpass импортиране getpass
потребителско име = вход(„Потребителско име:“)
парола = getpass(„Парола:“)
печат („Влизам...“)
Модулът getpass е част от стандартната библиотека на Python, така че не е необходимо да го инсталирате.
6. Направете големи числа четими с помощта на контейнери за долна черта
Когато имате работа с големи числа във вашата програма, те могат да бъдат много трудни за четене с един поглед. Присвояването на неправилни числа на променливи води до дефектна програма и забелязването на тази грешка може да бъде много трудно.
num1 = 10000000000
num2 = 100000000
общо = num1 + num2
печат (общо)
Можете да пренапишете горния код, като използвате долни черти, за да разделите групи от хиляди, обичаен начин да направите големи числа по-четими.
num1 = 10_000_000_000
num2 = 100_000_000
общо = num1 + num2
печат (е'{обща сума:,}')
Низът f във функцията за печат разделя изхода с помощта на разделителя за хиляди.
7. Използване на функцията за помощ, за да научите повече за модул
Помощната функция е много важна в Python. Той ще ви уведоми как да използвате модул, който сте инсталирали. За да го използвате, инсталирайте модула, след това стартирайте интерпретатора на Python в терминал и посочете пътя, по който сте инсталирали модула. Импортирайте модула и накрая предайте името на модула към функцията за помощ.
За да откриете кои методи и атрибути можете да използвате, заменете функцията помощ с функцията dir.
Функцията dir връща методите и атрибутите, които модулът поддържа, а не цялата документация. Това е полезно, когато искате да видите какво прави модулът.
Писане на по-чист код на Python
Python е много разнообразен език. Както при всеки друг език, с времето ще станете по-добри в писането на по-чист код на Python.
Python има много вградени модули и функции. В някои случаи можете да напишете труден за четене код, защото не знаете за съществуването на определена функция. За да сте сигурни, че сте по-информирани, трябва да прочетете повече статии за това как да пишете по-добър код.