A működő kód írása nem mindig elég; meg kell próbálnia jól strukturált, könnyen érthető kódot írni. A tiszta kód megkönnyíti Önnek – és másoknak – a szoftver karbantartását.
A Python számos olyan funkcióval és funkcióval rendelkezik, amelyek segíthetnek tisztább kód írásában. Íme néhány a legjobbak közül.
1. Automatizálja az erőforrások bezárását a Context Manager segítségével
Az erőforrások kézi bezárása kényelmetlen lehet, ha a kód sok erőforrással kölcsönhatásba lép. Lehet, hogy elfelejt bezárni egy erőforrást. Ezáltal a program nem hatékonyan használja a rendszererőforrásokat, ami a memória szivárgás.
Ez a kód megnyit egy fájlt, majd manuálisan bezárja:
file = open("teszt.txt", "r")
file_contents = file.read()
file.close()
szavak = file_contents.split(' ')
szószám = len (szavak)
nyomtatás (szószám)
A fájl bezárását egy környezetkezelővel automatizálhatja. A kontextuskezelők kezelik az erőforrásokat az Ön helyett, így nem kell emlékeznie a manuális kezelésre. Használja a
val vel utasítás kontextus létrehozásához az erőforrás kezeléséhez:val vel nyisd ki("teszt.txt", "r") mint fájl:
file_contents = file.read()
szavak = file_contents.split(' ')
szószám = len (szavak)
nyomtatás (szószám)
Az ebben a blokkban lévő kód annak a fájlobjektumnak a környezetében fut, amely nyisd ki visszatér. A Python automatikusan bezárja a fájlt, amikor a kód elhagyja a környezetet, még akkor is, ha kivétel történik.
2. Tisztább feltételes nyilatkozatok írása
Előfordulhat, hogy sok felesleges kódot ír, amikor foglalkozik ha-más kijelentések. A Python hármas operátorokkal rendelkezik, amelyek segítségével kompaktabb utasításokat írhat. Az alábbi kódblokk egy normál if-else utasítást mutat.
feltétel = Igaz
ha feltétel:
x = 1
más:
x = 0
nyomtatás (x)
Ezt a kódot átírhatja egy háromtagú operátorral, amely lehetővé teszi a feltétel egyetlen kódsorba történő beírását.
feltétel = Igaz
x = 1ha feltétel más0
nyomtatás (x)
Fontos megjegyezni, hogy az egyszerű logika megvalósítása során háromtagú operátorokat kell használnia. Bonyolultabb logikában és beágyazott feltételes utasításokban a háromtagú operátor nehezen érthetővé válhat.
3. Tételek nyomon követése az Enumerate funkcióval
Ha egy Python-lista felett iterál, az aktuális elem indexét kétféleképpen érheti el. Az egyik módja a hagyományos for ciklus használata. Ez jól működik, de a kód nem olyan tiszta, mint lehetne. Ehhez manuálisan is inicializálnia kell az indexet.
autók = ["Bugatti", "Mercedes", "Toyota"]
index = 0
számára autó ban ben autók:
nyomtatás (index, autó)
index += 1
A másik módszer a Python beépített felsorolási funkciója. Ez lehetővé teszi az index és a listában szereplő megfelelő érték elérését hurkolt közben.
autók = ["Bugatti", "Mercedes", "Toyota"]
számára index, autó ban ben felsorolni (autók):
nyomtatás (index, autó)
Most már nem kell manuálisan nyomon követnie az indexet.
4. Több lista átfutása a zip funkcióval
Az enumerate funkcióval egyszerre több listán is át lehet lépni. Szerezze be az első lista indexét, majd használja azt a megfelelő értékek eléréséhez más listákban.
english_names = ['étel', 'víz', 'autó']
spanyol_nevek = ["alimento", "agua", "auto"]
számára index, név ban ben felsorolni (angol_names):
spanyol = spanyol_nevek [index]
nyomtatás (f' {név} spanyolul az {spanyol}')
Ez jól működik, de sok felesleges kódot kell írnia, ha a listák száma nő. Tisztább kód írásához használhatja a zip funkciót, és átadhatja neki a listája nevét.
english_names = ['étel', 'víz', 'autó']
spanyol_nevek = ["alimento", "agua", "auto"]
számára angol spanyol ban ben zip (english_names, spanish_names):
nyomtatás(f' {angol} spanyolul az {spanyol}')
Továbbra is az enumerate függvényt kell használnia hurok egyetlen listán. Ha azonban egyszerre több listát keres, fontolja meg a zip funkció használatát.
Érzékeny információk bevitelekor a bevitel ne legyen látható egyszerű szövegként a képernyőn. A Pythonban a bevitel szokásos módja a beviteli függvény használata:
felhasználónév = input('Felhasználónév: ')
jelszó = input('Jelszó: ')
nyomtatás('Bejelentkezés...')
A beviteli funkció azonban a jelszót egyszerű szövegként teszi láthatóvá a képernyőn gépelés közben. Annak érdekében, hogy a jelszó ne jelenjen meg a képernyőn, használja inkább a getpass funkciót:
tól től getpass import getpass
felhasználónév = input('Felhasználónév: ')
jelszó = getpass('Jelszó:')
nyomtatás('Bejelentkezés...')
A getpass modul a Python szabványos könyvtárának része, ezért nem kell telepítenie.
6. Nagy számok olvashatóvá tétele aláhúzás helyőrzőkkel
Ha nagy számokkal van dolgod a programodban, nagyon nehéz lehet azokat egy pillantással elolvasni. A változókhoz helytelen számok hozzárendelése hibás programhoz vezet, és ezt a hibát nagyon nehéz észrevenni.
szám1 = 10000000000
szám2 = 100000000
összesen = num1 + num2
nyomtatás (összesen)
A fenti kódot aláhúzásjelekkel átírhatja több ezres csoportok elkülönítésére, ami a nagy számok olvashatóbbá tételének általános módja.
szám1 = 10_000_000_000
szám2 = 100_000_000
összesen = num1 + num2
nyomtatás(f'{teljes:,}')
A nyomtatási funkció f karakterlánca az ezres elválasztó segítségével választja el a kimenetet.
7. A Súgó funkció használatával többet megtudhat egy modulról
A súgó funkció nagyon fontos a Pythonban. Tudni fogja, hogyan kell használni a telepített modult. Használatához telepítse a modult, majd indítsa el a Python interpretert egy terminálon, és mutasson arra az elérési útra, amelyen a modult telepítette. Importálja a modult, és végül adja át a modul nevét a súgó függvénynek.
A használható módszerek és attribútumok felfedezéséhez cserélje ki a súgó függvényt a dir függvényre.
A dir függvény a modul által támogatott metódusokat és attribútumokat adja vissza, nem a teljes dokumentációt. Ez akkor hasznos, ha bepillantást szeretne látni a modul működésébe.
Tisztább Python kód írása
A Python egy nagyon változatos nyelv. Mint minden más nyelv esetében, idővel egyre jobban fogsz tisztább Python-kódot írni.
A Python számos beépített modullal és funkcióval rendelkezik. Egyes esetekben nehezen olvasható kódot írhat, mert nem ismeri egy bizonyos funkció létezését. Annak érdekében, hogy tájékozottabb legyen, érdemes több cikket elolvasni a jobb kód írásáról.