Scrierea codului de lucru nu este întotdeauna suficientă; ar trebui să încercați să scrieți cod bine structurat și ușor de înțeles. Codul curat vă va facilita întreținerea software-ului dvs. și altora.
Python are multe caracteristici și funcții care vă pot ajuta să scrieți cod mai curat. Iată câteva dintre cele mai bune.
1. Automatizați închiderea resurselor cu Context Manager
Închiderea manuală a resurselor poate fi incomod atunci când codul interacționează cu o mulțime de resurse. Este posibil să uitați să închideți o resursă. Acest lucru face ca programul dvs. să utilizeze resursele sistemului în mod ineficient, ceea ce poate duce la a pierdere de memorie.
Acest cod deschide un fișier, apoi îl închide manual:
fisier = deschis(„test.txt”, 'r')
file_contents = file.read()
file.close()
cuvinte = file_contents.split(' ')
word_count = len (cuvinte)
imprimare (număr de cuvinte)
Puteți automatiza închiderea fișierului folosind un manager de context. Managerii de context se ocupă de resurse pentru dvs., astfel încât nu trebuie să vă amintiți să le gestionați manual. Folosește cu declarație pentru a crea un context pentru a gestiona o resursă:
cu deschis(„test.txt”, 'r') la fel de fişier:
file_contents = file.read()
cuvinte = file_contents.split(' ')
word_count = len (cuvinte)
imprimare (număr de cuvinte)
Codul din acest bloc rulează în contextul obiectului fișier care deschis se intoarce. Python închide automat acel fișier atunci când codul părăsește acel context, chiar dacă apare o excepție.
2. Scrierea declarațiilor condiționale mai curate
S-ar putea să vă treziți să scrieți o mulțime de coduri inutile atunci când aveți de-a face cu declarații dacă-altfel. Python are operatori ternari care vă vor ajuta să scrieți declarații mai compacte. Blocul de cod de mai jos arată o declarație normală if-else.
stare = Adevărat
dacă condiție:
x = 1
altfel:
x = 0
imprimare (x)
Puteți rescrie acest cod folosind un operator ternar care vă permite să scrieți condiția într-o singură linie de cod.
stare = Adevărat
x = 1dacă condiție altfel0
imprimare (x)
Este important să rețineți că ar trebui să utilizați operatori ternari atunci când implementați o logică simplă. În logica mai complexă și instrucțiunile condiționale imbricate, operatorul ternar poate deveni greu de înțeles.
3. Urmărirea elementelor cu funcția de enumerare
Când iterați peste o listă Python, puteți accesa indexul articolului curent în două moduri. O modalitate este utilizarea buclei for tradiționale. Funcționează bine, dar codul nu este atât de curat pe cât ar putea fi. De asemenea, necesită să inițializați manual indexul.
mașini = ["Bugatti", „Mercedes”, „Toyota”]
index = 0
pentru mașină în masini:
imprimare (index, mașină)
index += 1
Cealaltă modalitate este utilizarea funcției de enumerare încorporată Python. Acest lucru vă va permite să accesați indexul și valoarea corespunzătoare din listă în timpul buclei.
mașini = ["Bugatti", „Mercedes”, „Toyota”]
pentru index, mașină în enumera (mașini):
imprimare (index, mașină)
Acum nu trebuie să urmăriți manual indexul.
4. Buclă peste mai multe liste cu funcția Zip
De asemenea, puteți utiliza funcția de enumerare pentru a parcurge mai multe liste simultan. Obțineți indexul primei liste, apoi utilizați-l pentru a accesa valorile corespunzătoare din alte liste.
nume_engleze = ['alimente', 'apă', 'mașină']
nume_spaniole = [„aliment”, 'agua', 'auto']
pentru index, nume în enumera (nume_engleză):
spaniolă = nume_spaniole [index]
imprimare (f' {Nume} în spaniolă este {Spaniolă}')
Acest lucru funcționează bine, dar va trebui să scrieți o mulțime de coduri inutile dacă numărul de liste crește. Pentru a scrie un cod mai curat, puteți folosi funcția zip și îi puteți transmite numele listei dvs.
nume_engleze = ['alimente', 'apă', 'mașină']
nume_spaniole = [„aliment”, 'agua', 'auto']
pentru engleză spaniolă în zip (nume_engleză, nume_spaniolă):
imprimare(f' {Engleză} în spaniolă este {Spaniolă}')
Ar trebui să continuați să utilizați funcția de enumerare pentru buclă peste o singură listă. Dar dacă parcurgeți mai multe liste împreună, luați în considerare utilizarea funcției zip.
Când introduceți informații sensibile, introducerea nu ar trebui să fie vizibilă ca text simplu pe ecran. Modul obișnuit de a prelua intrarea în Python este să utilizați funcția de intrare:
username = input('Nume de utilizator: ')
parola = input('Parola: ')
imprimare('Autentificare...')
Cu toate acestea, funcția de introducere face parola vizibilă ca text simplu pe ecran în timpul tastării. Pentru a vă asigura că parola nu este afișată pe ecran, ar trebui să utilizați în schimb funcția getpass:
din getpass import getpass
username = input('Nume de utilizator: ')
parola = getpass('Parola:')
imprimare('Autentificare...')
Modulul getpass face parte din biblioteca standard a lui Python, deci nu trebuie să-l instalați.
6. Faceți citibile numerelor mari folosind substituenți de subliniere
Când aveți de-a face cu numere mari în programul dvs., acestea pot fi foarte greu de citit dintr-o privire. Atribuirea unor numere incorecte variabilelor duce la un program defect și identificarea acestei erori poate fi foarte dificilă.
num1 = 10000000000
num2 = 100000000
total = num1 + num2
imprimare (total)
Puteți rescrie codul de mai sus folosind litere de subliniere pentru a separa grupuri de mii, o modalitate obișnuită de a face numerele mari mai lizibile.
num1 = 10_000_000_000
num2 = 100_000_000
total = num1 + num2
imprimare(f'{total:,}')
Șirul f din funcția de imprimare separă rezultatul folosind separatorul de mii.
7. Utilizarea funcției de ajutor pentru a afla mai multe despre un modul
Funcția de ajutor este foarte importantă în Python. Vă va informa cum să utilizați un modul pe care l-ați instalat. Pentru a-l folosi, instalați modulul, apoi lansați interpretul Python într-un terminal și indicați calea pe care ați instalat modulul. Importați modulul și, în final, treceți numele modulului la funcția de ajutor.
Pentru a descoperi ce metode și atribute puteți utiliza, înlocuiți funcția de ajutor cu funcția dir.
Funcția dir returnează metodele și atributele pe care modulul acceptă nu întreaga documentație. Acest lucru este util atunci când doriți să vedeți ceea ce face modulul.
Scrierea unui cod Python Cleaner
Python este un limbaj foarte divers. Ca și în orice altă limbă, veți deveni mai bun la scrierea unui cod Python mai curat în timp.
Python are multe module și funcții încorporate. În unele cazuri, puteți scrie cod greu de citit deoarece nu cunoașteți existența unei anumite funcții. Pentru a vă asigura că sunteți mai informat, ar trebui să citiți mai multe articole despre cum să scrieți un cod mai bun.