Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Psaní pracovního kódu není vždy dostačující; měli byste se pokusit napsat dobře strukturovaný kód, který je také snadno pochopitelný. Čistý kód vám – i ostatním – usnadní údržbu vašeho softwaru.

Python má mnoho vlastností a funkcí, které vám mohou pomoci napsat čistší kód. Zde jsou některé z nejlepších.

1. Automatizujte zavírání zdrojů pomocí kontextového správce

Ruční zavírání zdrojů může být nepohodlné, když váš kód interaguje s velkým množstvím zdrojů. Možná zapomenete zavřít zdroj. Díky tomu váš program využívá systémové prostředky neefektivně, což může vést k a únik paměti.

Tento kód otevře soubor a poté jej ručně zavře:

soubor = otevřít('test.txt', 'r')
file_contents = soubor.read()
file.close()
slova = file_contents.split(' ')
počet_slov = len (slova)
tisknout (počet_slov)

Uzavírání souboru můžete automatizovat pomocí kontextového správce. Kontextoví manažeři spravují zdroje za vás, takže si je nemusíte pamatovat ručně. Použijte

s příkaz k vytvoření kontextu pro správu zdroje:

s OTEVŘENO('test.txt', 'r') tak jako soubor:
file_contents = soubor.read()
slova = file_contents.split(' ')
počet_slov = len (slova)
tisknout (počet_slov)

Kód v tomto bloku běží v kontextu objektu souboru, který OTEVŘENO se vrací. Python automaticky zavře tento soubor, když kód opustí tento kontext, i když dojde k výjimce.

2. Psaní čistších podmíněných prohlášení

Možná se přistihnete při psaní spousty zbytečného kódu if-others prohlášení. Python má ternární operátory, které vám pomohou psát kompaktnější příkazy. Níže uvedený blok kódu zobrazuje normální příkaz if-else.

podmínka = Skutečný

-li stav:
x = 1
jiný:
x = 0

tisknout (x)

Tento kód můžete přepsat pomocí ternárního operátoru, který vám umožní napsat podmínku na jeden řádek kódu.

podmínka = Skutečný
x = 1-li stav jiný0
tisknout (x)

Je důležité si uvědomit, že při implementaci jednoduché logiky byste měli používat ternární operátory. Ve složitější logice a vnořených podmíněných příkazech může být ternární operátor obtížně srozumitelný.

3. Sledování položek pomocí funkce Enumerate

Při iteraci přes seznam Pythonu můžete k indexu aktuální položky přistupovat dvěma způsoby. Jedním ze způsobů je použití tradiční smyčky for. Funguje to dobře, ale kód není tak čistý, jak by mohl být. Vyžaduje také, abyste index inicializovali ručně.

auta = ['bugatti', 'Mercedes', 'toyota']
index = 0

pro auto v auta:
tisk (index, auto)
index += 1

Druhým způsobem je použití funkce enumerate vestavěné v Pythonu. To vám umožní přístup k indexu a odpovídající hodnotě v seznamu během opakování.

auta = ['bugatti', 'Mercedes', 'toyota']

pro index, auto v vyjmenovat (auta):
tisk (index, auto)

Nyní nemusíte sledovat index ručně.

4. Procházení několika seznamů pomocí funkce Zip

Funkci enumerate můžete také použít k procházení několika seznamů najednou. Získejte index prvního seznamu a poté jej použijte pro přístup k odpovídajícím hodnotám v dalších seznamech.

anglická_jména = ['jídlo', 'voda', 'auto']
spanish_names = ['alimento', 'agua', 'auto']

pro index, jméno v vyjmenovat (anglická_jména):
španělština = španělská_jména [index]
tisk (F' {název} ve španělštině je {španělština}')

Funguje to dobře, ale pokud se počet seznamů zvýší, budete muset napsat spoustu zbytečného kódu. Chcete-li napsat kód čističe, můžete použít funkci zip a předat mu jména svého seznamu.

anglická_jména = ['jídlo', 'voda', 'auto']
spanish_names = ['alimento', 'agua', 'auto']

pro anglicky, španělsky v zip (english_names, spanish_names):
tisk(F' {Angličtina} ve španělštině je {španělština}')

Měli byste i nadále používat funkci enumerate smyčka přes jeden seznam. Pokud ale procházíte několik seznamů dohromady, zvažte použití funkce zip.

Při zadávání citlivých informací by vstup neměl být na obrazovce viditelný jako prostý text. Obvyklým způsobem přijímání vstupu v Pythonu je použití vstupní funkce:

uživatelské jméno = vstup('Uživatelské jméno:')
heslo = vstup('Heslo: ')
tisk('Přihlášení...')

Funkce zadávání však zviditelní heslo jako prostý text na obrazovce během psaní. Abyste se ujistili, že se heslo nezobrazuje na obrazovce, měli byste místo toho použít funkci getpass:

z getpass import getpass
uživatelské jméno = vstup('Uživatelské jméno:')
heslo = getpass('Heslo:')
tisk('Přihlášení...')

Modul getpass je součástí standardní knihovny Pythonu, takže jej nemusíte instalovat.

6. Čitelnost velkých čísel pomocí zástupných symbolů podtržení

Když ve svém programu pracujete s velkými čísly, mohou být na první pohled velmi špatně čitelná. Přiřazení nesprávných čísel proměnným vede k chybnému programu a odhalení této chyby může být velmi obtížné.

číslo1 = 10000000000
číslo2 = 100000000
celkem = num1 + num2
tisknout (celkem)

Výše uvedený kód můžete přepsat pomocí podtržítek k oddělení skupin tisíců, což je běžný způsob, jak zvýšit čitelnost velkých čísel.

číslo1 = 10_000_000_000
číslo2 = 100_000_000
celkem = num1 + num2
tisk(F'{celkový:,}')

Řetězec f ve funkci tisku odděluje výstup pomocí oddělovače tisíců.

7. Použití funkce nápovědy k získání dalších informací o modulu

Funkce nápovědy je v Pythonu velmi důležitá. Dá vám vědět, jak používat modul, který jste nainstalovali. Chcete-li jej použít, nainstalujte modul, poté spusťte interpret Pythonu v terminálu a ukažte na cestu, kterou jste modul nainstalovali. Importujte modul a nakonec předejte název modulu funkci nápovědy.

Chcete-li zjistit, které metody a atributy můžete použít, nahraďte funkci nápovědy funkcí dir.

Funkce dir vrací metody a atributy, které modul podporuje, nikoli celou dokumentaci. To je užitečné, když chcete mít přehled o tom, co modul dělá.

Python kód Python Cleaner

Python je velmi rozmanitý jazyk. Stejně jako u jakéhokoli jiného jazyka se postupem času zlepšíte v psaní čistšího kódu Pythonu.

Python má mnoho vestavěných modulů a funkcí. V některých případech můžete napsat obtížně čitelný kód, protože vám chybí znalosti o existenci určité funkce. Abyste byli informovanější, měli byste si přečíst více článků o tom, jak napsat lepší kód.