Tartalomjegyzék[Elrejt][Előadás]
Ez az előadás a Python moduljait és csomagjait öleli fel.
Ezek egy módja annak, hogy a kódot fájlok formájában rendezze, és nagyon fontosak, ha Python segítségével kíván webalkalmazásokat építeni.
Modulok
A Python modulja alapvetően egy python kóddal rendelkező fájl, amelyet arra használunk, hogy a kódunkat fájlokba rendezzük. Képzeld úgy, mint egy szupermarket szekcióit. Amikor egy szupermarketbe megy, különböző részlegek találhatók a gyümölcsök, zöldségek, tisztítószerek stb. számára. Nem látja az összes terméket tartalmazó részt.
Ugyanez a fogalom a programozásban. Ahelyett, hogy az összes kódunkat az összes függvényekkel és osztályokkal együtt írnánk a main.py fájlba, a kódunkat több fájlra bontjuk. Minden fájlt modulnak nevezünk. Ezzel nem csak a kódunk jobban szervezett és strukturált, de lehetőségünk nyílik arra is, hogy újra felhasználjuk a kódunkat. Nézzük meg egy példán keresztül.
Definiáljunk két függvényt a súlyok fontról kilogrammra való konvertálására és fordítva.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Most ezt a két függvényt feltehetjük egy külön „konverterek” nevű modulba, majd bármely programba importálhatjuk, aminek szüksége van ezekre a konverter funkciókra. Hadd mutassam meg, hogyan kell ezt csinálni.
Nyissuk meg a projektpanelt, kattintson a jobb gombbal a projektre, és adjunk hozzá egy új fájlt. Ezt a fájlt „Converters.py”-nek fogjuk nevezni.
Most másolja ki a kódot az alapértelmezett fájlból, és illessze be a „Converters.py” fájlba.
Ezzel megtisztítottuk a fő modulunkat, és nincs felfújva különböző funkciókkal. Ahogy egyre több függvényt írunk osztályokkal, úgy helyezzük el őket a megfelelő modulokba. Egy modulnak tartalmaznia kell az összes kapcsolódó függvényt és osztályt. Most szeretnénk importálni az átalakítók modult az alkalmazásmodulunkba. Ehhez írjon import converters
felül a „.py” kiterjesztés nélkül.
Egy modul tagjait a metódusokhoz hasonló pont operátor segítségével érhetjük el.
Váltsunk át 70 kg-ot fontra:
A modulok importálásához van egy másik szintaxis is. A teljes modul importálása helyett bizonyos funkciókat importálhatunk abból a modulból. Tudunk gépelni from Converters import
és nyomja meg a „control + szóköz” billentyűket az elérhető funkciók listájának megjelenítéséhez. Ezzel közvetlenül hívhatjuk ezt a függvényt.
Gyakorol
Itt van a gyakorlatod.
Ez kapcsolódik egy gyakorlathoz az előadásból, ahol megvitattuk „hurkokhoz” ahol programot írtunk, hogy egy listából megtudjuk a legnagyobb számot
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Ennek a kódnak jelenleg nincs szervezete. Nincsenek funkcióink vagy moduljaink, és a program egyetlen fájlba van írva. Ez rendben van kis programok esetén, de a programok növekedésével megfelelően osztályokba és modulokba kell rendeznie a kódot. Ezért ennek a gyakorlatnak a részeként azt szeretném, hogy írjon egy függvényt, hívja meg find_max
. Ennek a függvénynek egy listát kell felvennie, és a listában a legnagyobb számot kell visszaadnia. Ezt követően tedd ezt a függvényt egy külön modulba, innen bontsd ki és tedd egy nevű modulba utils
. Ennek a modulnak tartalmaznia kell egy csomó segédfunkciót. Importálja a utils
modult az aktuális modulba, és hívja find_max
funkció. Végül szerezze be az eredményt, és nyomtassa ki a terminálon.
Ez a gyakorlat egy kicsit kihívást jelent, de könnyen elvégezhető.
Megoldás
Kezdje egy függvény meghatározásával find_max
és adjunk hozzá egy számoknak nevezett paramétert. Ebben a függvényben írja be az algoritmust a legnagyobb szám megtalálásához a listában.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Mentse el ezt a kódot egy „utils.py” fájlba modulként.
Vissza a fő programunkhoz, csak importálja a modult a két szintaxis valamelyikével, és egyszerűen hajtsa végre a logikát.
Egy dologra fel kell hívnom a figyelmet, az aláásott max
. Ennek oka az max
egy beépített függvény a Pythonban, és újradefiniáljuk. Tehát ez egy figyelmeztetés a Python fordító hogy a max-ot már nem használhatjuk beépített funkciójaként.
Beépített modulok Pythonban
A Python egy szabványos könyvtárral rendelkezik, amely számos modult tartalmaz az olyan gyakori feladatokhoz, mint például az e-mailek küldése, a dátum és az idő kezelése, véletlenszerű értékek és jelszavak generálása és így tovább. Nagyon sok modul van már beépítve a Pythonba, ami azt jelenti, hogy már sok olyan funkció van, amelyet újra felhasználhatunk. Ezeket a modulokat megtalálod itt.
Csomagok
A csomagok alapvetően egy másik módja annak, hogy a kódunkat a modulok tetejére rendezzük. Egy valódi projekt több száz vagy akár több ezer modult is tartalmazhat, és idővel a könyvtárunk felduzzad a sok fájllal. Ezért jobb megközelítés, ha a kapcsolódó modulokat egy csomagon belül rendezzük, így a csomag több modul tárolójává válik.
Egy új könyvtárat adunk a projekthez, és az összes kapcsolódó modult hozzáadjuk ehhez a könyvtárhoz. Példaként gondoljon egy bevásárlóközpontra. Egy bevásárlóközpontban különböző részlegek találhatók férfi, női és gyerekruházat számára, amelyek olyanok, mint a csomagok. Minden szekcióban különböző területek találhatók a különböző termékekhez, például cipőkhöz, pólókhoz és dzsekikhez. Tekintsd ezeket moduloknak.
Nézzük meg, hogyan lehet csomagokat létrehozni és használni Pythonban.
Először adjon hozzá egy új könyvtárat a projektpanelről. Nevezzük „e-kereskedelemnek”. Ez a csomag tartalmazza az összes e-kereskedelmi alkalmazáshoz kapcsolódó modult.
Ez még mindig egy üres könyvtár, és ahhoz, hogy csomaggá alakítsuk, létre kell hoznunk egy speciális fájlt benne. Adjon hozzá egy új python-fájlt ebbe a könyvtárba, és nevezze el a fájlt „__init__”. Ez egy speciális Python konvenció, és amikor a Python értelmező ilyen nevű fájlt lát egy könyvtárban, ezt a könyvtárat csomagként kezeli.
Van egy alternatív és tömör módszerünk is a csomag létrehozására. Csak kattintson a jobb gombbal a projektpanelre, és hozzon létre egy Python-csomagot a listából. Nevezze el „eCommerce”-nek, és kész. Ez automatikusan létrehoz egy könyvtárat egy „__init__” nevű Python-fájllal.
Most hozzunk létre egy modult a csomagban, és nevezzük el „szállítás”. Ebben a modulban hozzunk létre egy egyszerű függvényt a szállítási költségek kiszámításához.
def calc_shipping():
print("calc_shipping")
Ennek a funkciónak a fő modulunkban való eléréséhez az e-kereskedelmi csomagon keresztül kell elérnünk. Ismét két módszerünk van a modul importálására.
Az első módszerben importálhatjuk a teljes modult, majd önállóan hívhatjuk meg a függvényt, így:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Ezzel a megközelítéssel azonban az egyik függvény meghívásához ehhez a modulhoz előtagként kell megadni eCommerce.shipping.
Ez nagyon bőbeszédű. Tehát, amikor csomagokkal dolgozunk, gyakran a második megközelítést alkalmazzuk, és a from
nyilatkozat.
from eCommerce.shipping import calc_shipping
calc_shipping()
Ha több függvénye van egy modulban, azokat egyetlen sorban importálhatja úgy, hogy közöttük vesszőt használ. Tegyük fel, hogy a szállítási modulunkban van egy másik funkció is az adó kiszámításához. Ez így lesz importálva:
from eCommerce.shipping import calc_shipping, calc_tax
Egyedi modulokat is importálhat, és a függvényeket a program későbbi szakaszában hívhatja meg. Importáljuk a modul szállítását, majd egy pont operátorral hívjuk meg a függvényt calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Csomagolj!
A csomagok és modulok rendkívül fontosak a Pythonban. Különösen, ha olyan keretrendszerrel szeretne dolgozni, mint a Django, amelyet építkezésre használnak webes alkalmazások Pythonnal. A Django-val egy másik Python tanfolyam során fogunk foglalkozni.
Ez volt az utolsó hagyományos előadás a sorozatban. A következő előadás eltér a megszokott formátumunktól, és megtanulunk néhány fontos Python használati esetet. Ez jelenti a sorozat végét, és továbblépünk a következő Python-sorozatunkra. Maradjon velünk.
Hagy egy Válaszol