Kihagyás

Pythonic

A Python nem csak egy programozási nyelv; ez egy filozófia is. Pythonikus kód írása azt jelenti, hogy elfogadjuk azokat az idiómákat, konvenciókat és bevált gyakorlatokat, amelyek a Python kódot tisztává, tömörré és hatékonnyá teszik. Ez az útmutató bemutatja azokat az elveket és technikákat, amelyek segítségével Pythonikus kódot írhatunk.

A Python zenéje

Mielőtt belemerülnénk a kódba, gondoljuk át a Python irányadó elveit. A "The Zen of Python" eléréséhez futtasd az alábbi parancsot a Python értelmezőben:

import this

Ezek a Tim Peters által írt aforizmák megragadják a Pythonikus gondolkodás lényegét

  • Beautiful is better than ugly.
  • Explicit is better than implicit.
  • Simple is better than complex.
  • Complex is better than complicated.
  • Flat is better than nested.
  • ...

Ezen elvek megértése és internalizálása segít olyan kódot írni, amely nem csak működőképes, hanem elegáns és karbantartható is.

Idiomatikus Szintaxis

A Python erőteljes szintaktikai konstrukciókat kínál, amelyek lehetővé teszik a tömör és olvasható kód írását.

Mi az idiomatikus kód?

Az "idiomatikus" szó arra utal, hogy valami a nyelv sajátos kifejezéseit, szokásait vagy stílusát követi. A programozásban az idiomatikus kód olyan kódot jelent, amely a programozási nyelvben bevett, természetes és gyakran használt mintákat és megoldásokat alkalmazza.

Tehát ha egy kód idiomatikus, akkor az:

  • A nyelv legjobb gyakorlatait követi: Használja a nyelv által kínált eszközöket és funkciókat a lehető leghatékonyabb és legolvasóbarátabb módon.
  • Követi a közösségi konvenciókat: Olyan stílusban és szerkezetben íródott, amelyet a nyelvet használó közösség széles körben elfogadott és megért.
  • Természetes a nyelv számára: A kód olvasása és megértése könnyű azok számára, akik ismerik a nyelvet, mert a megszokott mintákat követi.
  • Például a Pythonban az idiomatikus kód gyakran használ lista megértéseket, generátorokat, és más olyan nyelvi funkciókat, amelyek tömörebbé és olvashatóbbá teszik a kódot.

Lista megértések

A lista megértések tömör módot kínálnak listák létrehozására.

Nem Pythonikus:

negyzetek = []
for x in range(10):
    negyzetek.append(x**2)

Pythonikus:

negyzetek = [x**2 for x in range(10)]

Generátor kifejezések

A generátorok memóriahatékonyak, mert egyesével adják vissza az elemeket.

Lista Megértéssel:

negyzetek_összege = sum([x**2 for x in range(10)])

Generátor Kifejezéssel (Pythonikus):

negyzetek_összege = sum(x**2 for x in range(10))

Feltételes kifejezések

A ternáris operátorok lehetővé teszik a feltételes értékadást egy sorban.

Nem Pythonikus:

if feltétel:
    eredmény = x
else:
    eredmény = y

Pythonikus:

eredmény = x if feltétel else y

Beépített függvények hatékony használata

A Python beépített függvényei optimalizáltak és teszteltek. Használatukkal a kód hatékonyabbá és tisztábbá tehető.

Nem Pythonikus:

új_lista = []
for elem in régi_lista:
    új_lista.append(str(elem))

Pythonikus:

új_lista = list(map(str, régi_lista))

EAFP vs. LBYL

Nem Pythonikus (LBYL - look before you leap):

if kulcs in szótár:
    érték = szótár[kulcs]
else:
    érték = None

Pythonikus (EAFP - easier to ask forgiveness than permission):

A Pythonikus kód gyakran előnyben részesíti a kivételek kezelését a feltételek előzetes ellenőrzésével szemben.

try:
    érték = szótár[kulcs]
except KeyError:
    érték = None

Kicsomagolás és többszörös értékadás

A Python lehetővé teszi iterálható objektumok kicsomagolását több változóba.

Nem Pythonikus:

t = (1, 2, 3)
a = t[0]
b = t[1]
c = t[2]

Pythonikus:

a, b, c = (1, 2, 3)

Környezetkezelők

Használja a with utasítást az erőforrások megfelelő kezelése érdekében.

Nem Pythonikus:

fájl = open('adat.txt', 'r')
adat = fájl.read()
fájl.close()

Pythonikus:

with open('adat.txt', 'r') as fájl:
    adat = fájl.read()

A Standard könyvtár használata

A Python standard könyvtára kiterjedt. Mielőtt saját kódot írna, ellenőrizze, hogy egy modul már nem biztosítja-e a szükséges funkcionalitást.

Nem Pythonikus:

import os

fájlok = [f for f in os.listdir('.') if os.path.isfile(f)]

Pythonikus:

import glob

fájlok = glob.glob('*')

Olvasható kód írása

Az olvashatóság a Pythonikus kód alapvető eleme.

PEP 8 stílus útmutató

A PEP 8 útmutatást nyújt arra vonatkozóan, hogyan formázzuk a Python kódot a maximális olvashatóság érdekében.

  • Behúzás: Használjon 4 szóközt behúzási szintenként.
  • Sorhossz: Korlátozza a sorokat 79 karakterre.
  • Üres Sorok: Használjon üres sorokat a függvények és osztályok elválasztására.
  • Importok: Az importokat általában külön sorokban kell megadni.

Beszédes nevek

Válasszon olyan változó- és függvényneveket, amelyek egyértelműen közvetítik céljukat.

Nem Pythonikus:

def f(a):
    return a * 2

Pythonikus:

def duplazas(ertek):
    return ertek * 2

Összegzés

A Pythonikus kód írása azt jelenti, hogy elfogadjuk azokat az idiómákat és gyakorlatokat, amelyeket a Python közösség értékel. Ezeknek az irányelveknek a követésével olyan kódot írhat, amely nem csak hatékony, hanem tiszta, olvasható és karbantartható is.

Tipp

Ne feledd, a kódot gyakrabban olvassák, mint írják. Töreked a világosságra és egyszerűségre!