Napisanie działającego kodu nie zawsze wystarcza; powinieneś spróbować napisać dobrze ustrukturyzowany kod, który jest również łatwy do zrozumienia. Czysty kod ułatwi Tobie — i innym — konserwację oprogramowania.
Python ma wiele cech i funkcji, które mogą pomóc w pisaniu czystszego kodu. Oto niektóre z najlepszych.
1. Zautomatyzuj zamykanie zasobów za pomocą menedżera kontekstu
Ręczne zamykanie zasobów może być niewygodne, gdy kod wchodzi w interakcję z wieloma zasobami. Możesz zapomnieć o zamknięciu zasobu. Powoduje to, że program nieefektywnie wykorzystuje zasoby systemowe, co może prowadzić do błędu wyciek pamięci.
Ten kod otwiera plik, a następnie zamyka go ręcznie:
plik = otwórz(„test.txt”, 'R')
zawartość_pliku = plik.odczyt()
plik.zamknij()
słowa = zawartość_pliku.split(' ')
liczba_słów = długość (słowa)
drukuj (liczba_słów)
Możesz zautomatyzować zamykanie pliku za pomocą menedżera kontekstu. Menedżerowie kontekstu obsługują zasoby za Ciebie, więc nie musisz pamiętać o ręcznym zarządzaniu nimi. Użyj
z instrukcja, aby utworzyć kontekst do zarządzania zasobem:z otwarty(„test.txt”, 'R') Jak plik:
zawartość_pliku = plik.odczyt()
słowa = zawartość_pliku.split(' ')
liczba_słów = długość (słowa)
drukuj (liczba_słów)
Kod w tym bloku działa w kontekście obiektu pliku, który otwarty zwroty. Python automatycznie zamyka ten plik, gdy kod opuszcza ten kontekst, nawet jeśli wystąpi wyjątek.
2. Pisanie czystszych instrukcji warunkowych
Podczas obsługi może się okazać, że piszesz dużo niepotrzebnego kodu instrukcje if-else. Python ma trójskładnikowe operatory, które pomogą Ci pisać bardziej zwięzłe instrukcje. Poniższy blok kodu pokazuje normalną instrukcję if-else.
warunek = PRAWDA
Jeśli stan: schorzenie:
x = 1
w przeciwnym razie:
x = 0
drukuj (x)
Możesz przepisać ten kod za pomocą operatora trójskładnikowego, który umożliwia zapisanie warunku w jednym wierszu kodu.
warunek = PRAWDA
x = 1Jeśli stan w przeciwnym razie0
drukuj (x)
Należy pamiętać, że podczas implementacji prostej logiki należy używać operatorów trójskładnikowych. W bardziej złożonej logice i zagnieżdżonych instrukcjach warunkowych operator trójskładnikowy może być trudny do zrozumienia.
3. Śledzenie elementów za pomocą funkcji wyliczania
Podczas iteracji po liście Pythona możesz uzyskać dostęp do indeksu bieżącego elementu na dwa sposoby. Jednym ze sposobów jest użycie tradycyjnej pętli for. Działa to dobrze, ale kod nie jest tak czysty, jak mógłby być. Wymaga to również ręcznego zainicjowania indeksu.
samochody = [„Bugatti”, „Mercedesa”, „Toyota”]
indeks = 0
Do samochód W samochody:
druk (indeks, samochód)
indeks += 1
Innym sposobem jest użycie wbudowanej funkcji enumerate Pythona. Umożliwi to dostęp do indeksu i odpowiedniej wartości na liście podczas zapętlania.
samochody = [„Bugatti”, „Mercedesa”, „Toyota”]
Do Indeks, samochód W wyliczać (samochody):
druk (indeks, samochód)
Nie musisz już ręcznie śledzić indeksu.
4. Zapętlanie kilku list za pomocą funkcji Zip
Możesz także użyć funkcji enumerate, aby przejrzeć kilka list jednocześnie. Uzyskaj indeks pierwszej listy, a następnie użyj go, aby uzyskać dostęp do odpowiednich wartości na innych listach.
angielskie_nazwy = ['żywność', 'woda', 'samochód']
hiszpańskie nazwy = [„pożywienie”, „woda”, 'automatyczny']
Do indeks, nazwa W wyliczyć (nazwy_angielskie):
hiszpański = hiszpański_nazwy [indeks]
wydrukować (F' {nazwa} po hiszpańsku jest {hiszpański}')
Działa to dobrze, ale jeśli liczba list wzrośnie, będziesz musiał napisać dużo niepotrzebnego kodu. Aby napisać czystszy kod, możesz użyć funkcji zip i przekazać jej nazwy swojej listy.
angielskie_nazwy = ['żywność', 'woda', 'samochód']
hiszpańskie nazwy = [„pożywienie”, „woda”, 'automatyczny']
Do angielski hiszpański W zip (nazwy_angielskie, nazwy_hiszpańskie):
wydrukować(F' {język angielski} po hiszpańsku jest {hiszpański}')
Powinieneś nadal używać funkcji enumerate, aby zapętlić pojedynczą listę. Ale jeśli przeglądasz kilka list razem, rozważ użycie funkcji zip.
Podczas wprowadzania poufnych informacji dane wejściowe nie powinny być widoczne jako zwykły tekst na ekranie. Zwykłym sposobem wprowadzania danych w Pythonie jest użycie funkcji input:
nazwa użytkownika = wejście ('Nazwa użytkownika: ')
hasło = wejście ('Hasło: ')
wydrukować('Logowanie...')
Jednak funkcja wprowadzania powoduje, że hasło jest widoczne jako zwykły tekst na ekranie podczas wpisywania. Aby upewnić się, że hasło nie jest wyświetlane na ekranie, należy zamiast tego użyć funkcji getpass:
z przejść dalej import przejść dalej
nazwa użytkownika = wejście ('Nazwa użytkownika: ')
hasło = getpass('Hasło:')
wydrukować('Logowanie...')
Moduł getpass jest częścią standardowej biblioteki Pythona, więc nie trzeba go instalować.
6. Czytelność dużych liczb za pomocą symboli zastępczych podkreślenia
Kiedy masz do czynienia z dużymi liczbami w swoim programie, ich odczytanie na pierwszy rzut oka może być bardzo trudne. Przypisanie zmiennym nieprawidłowych liczb prowadzi do błędnego programu, a wykrycie tego błędu może być bardzo trudne.
liczba1 = 10000000000
liczba2 = 100000000
suma = liczba1 + liczba2
druk (łącznie)
Możesz przepisać powyższy kod, używając podkreśleń, aby oddzielić grupy tysięcy, co jest powszechnym sposobem zwiększania czytelności dużych liczb.
liczba1 = 10_000_000_000
liczba2 = 100_000_000
suma = liczba1 + liczba2
wydrukować(F'{całkowity:,}')
Ciąg f w funkcji print oddziela dane wyjściowe za pomocą separatora tysięcy.
7. Korzystanie z funkcji pomocy, aby dowiedzieć się więcej o module
Funkcja pomocy jest bardzo ważna w Pythonie. Poinformuje Cię, jak korzystać z zainstalowanego modułu. Aby z niego skorzystać, zainstaluj moduł, a następnie uruchom interpreter Pythona w terminalu i wskaż ścieżkę, w której zainstalowałeś moduł. Zaimportuj moduł i na koniec przekaż nazwę modułu do funkcji pomocy.
Aby dowiedzieć się, jakich metod i atrybutów możesz użyć, zastąp funkcję pomocy funkcją dir.
Funkcja dir zwraca metody i atrybuty obsługiwane przez moduł, a nie całą dokumentację. Jest to przydatne, gdy chcesz rzucić okiem na to, co robi moduł.
Pisanie czystszego kodu w Pythonie
Python jest bardzo zróżnicowanym językiem. Podobnie jak w przypadku każdego innego języka, z czasem staniesz się lepszy w pisaniu czystszego kodu w Pythonie.
Python ma wiele wbudowanych modułów i funkcji. W niektórych przypadkach możesz napisać trudny do odczytania kod, ponieważ nie masz wiedzy o istnieniu określonej funkcji. Aby upewnić się, że jesteś lepiej poinformowany, powinieneś przeczytać więcej artykułów o tym, jak pisać lepszy kod.