Python (9.) - Další aspekty jazyka Python
V dnešním díle se podíváme na poslední části jazyka Python, jenž jsou pro začátek zajímavé, jedná se o příkaz import a tzv. výjimky.
18.2.2005 15:00 |
Aleš Hakl
| Články autora
| přečteno 18465×
Omlouvám se za to, že tento díl vychází s takovým spožděním za
předchozím, bohužel i moderní taiwanská technika občas zklame ^_~
Příkaz import
Program v jazyce Python může využívat služeb poskytovaných programy v
jiných souborech, či kompilovaným kódem napsaným například v jazyce C.
Takovémuto úseku kódu v jiném souboru se v terminologii jazyka Python říká
modul. Prozatím nám jistě bude stačit vědět, jak v našem programu takový
modul použijeme.
K načtení modulu ze souborového systému slouží příkaz import :
Jméno modulu je identifikátor, který označuje modul, jenž se
snažíme načíst. Tento název se zapisuje jako běžná proměnná a může
obsahovat tečky, které umožňují moduly sdružovat do větších celků,
takzvaných balíčků.
Příkaz import načte modul do paměti a k jeho obsahu můžeme
dále přistupovat tak, že před název proměnné, třídy či funkce
z něj
uvedeme jeho název:
jméno_modulu.jméno_proměnné . Pokud nám
tento zápis nevyhovuje můžeme použít příkaz:
from jméno_modulu import název
Tento příkaz importuje z daného modulu objekt jménem název tak, že
tento objekt pak bude dostupný pod názvem název. Místo názvu
také můžeme uvést znak * , to způsobí že se z modulu zpřístupní
všechny názvy, které jsou v daném modulu dostupné, další variantou zápisu je,
že můžeme uvést seznam názvů oddělených čárkou. Identifikátor za
from nemusí být nutně celé jméno modulu, stačí jméno balíčku,
v tom případě název označuje modul(y) v tomto balíčku, které opět
budou dostupné pod zkráceným názvem.
Příkaz from...import si zaslouží krátkou zmínku o efektivitě
provádění programu, doporučuje se aby název používaný v programu obsahoval
co nejméně teček (polopaticky řečeno), každá tečka sebou totiž přináší
jisté zpomalení programu. Na druhou stranu rychlost provádění programu
v Pytonu málokdy bývá kritická. Osobně importuji moduly většinou tak,
že v programu používám pouze poslední část jejich názvu.
Tedy:
Importuje modul time , kterýžto bude dostupný pod názvem
time .
Importuje modul time tak, že jeho obsah bude z programu
dostupný přímo.
from xml.dom.ext.reader import Sax2
Importuje modul xml.dom.ext.reader.Sax2 pod názvem
Sax2 .
Za zmínku též jistě stojí, že příkaz import neprovádí to
stejné jako stejně pojmenovaný příkaz s podobným významem známý z jazyka
Java, který se shodou okolností i dost
podobně zapisuje. Věřím tomu, že mnoho programátorů znalých jazyka Java
toto bude dlouho mást.
Úmyslně jsem neuvedl, jak takové moduly či balíčky vlastně vypadají,
jedná se totiž o poněkud obsáhlejší téma, které si necháme na některý z
pozdějších dílů.
Výjimky
Výjimky jsou způsob jakým se v Pythonu ošetřují chyby. Jedná se o způsob
jakým lze rozumně zajistit aby na chybu vždy nějak zareagoval, i v
případě, že s ní programátor nepočítá, a zároveň aby programátor měl
možnost na takovou situaci reagovat po svém a bez velké námahy pokračovat
dále ve vykonávání programu.
Za zmínku také stojí, že v Pythonu jsou na
několika místech výjimky použity i jako způsob jak z funkce vrátit hodnotu
označující stav jako "Žádná další hodnota neexistuje", přestože funkce
jinak může vrátit naprosto cokoli, i když takový stav vlastně vůbec není
chybou.
Výjimka je instance třídy, která popisuje nějaký chybový stav, který
brání tomu aby program normálně pokračoval v běhu, v případě, že
je vyvolána výjimka, postupně se vyskakuje z bloků programu, dokud
se nenajde blok try...except , který tuto výjimku
(nebo některou z jejích rodičovských tříd) ošetřuje. Pokud se takový
blok nenajde, interpret vypíše chybové hlášení a program skončí.
Obecná syntaxe tohoto bloku je:
try:
kód
except Výjimka0, identifikátor:
reakce0
except Výjimka1, identifikátor:
reakce1
.
.
.
Pokud kód tedy vyvolá nějakou výjimku pro kterou existuje
odpovídající except , pokračuje provádění v odpovídajícím bloku
reakce, s tím, že výjimka, na kterou reagujeme, je přiřazena
do proměnné identifikátor(z výše uvedeného to není patrné, ale v
různých blocích except může být tento identifikátor
samozřejmě různý)
Tím jsme určitě neprošli jazyk Python kompletně, ale prošli jsme ho
natolik, že se můžeme v dalších dílech zabývat tím, jaké zajímavé funkce
a třídy nám rozsáhlá standardní knihovna Pythonu nabízí.
Verze pro tisk
|
Příspívat do diskuze mohou pouze registrovaní uživatelé.
|
|

Vyhledávání software

Vyhledávání článků
28.11.2018 23:56 /František Kučera Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz 22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz 20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
16.7.2018 1:05 /František Kučera Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář
Více ...
Přidat zprávičku
 Poslední diskuze
31.7.2023 14:13 /
Linda Graham iPhone Services
30.11.2022 9:32 /
Kyle McDermott Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš Re: zavináč
2.12.2018 23:56 /
František Kučera Sraz
5.10.2018 17:12 /
Jakub Kuljovsky Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?
Více ...
|