LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> 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 15360×

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:

import jméno modulu

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:

import time

Importuje modul time, kterýžto bude dostupný pod názvem time.

from time import *

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

pridej.cz

 

DISKUZE

Chybička 18.2.2005 17:13 Michal Čihař
  L Re: Chybička 21.2.2005 16:12 Ivan Majer




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

18.6.2018 0:43 /František Kučera

Červnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 21. 6. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: F-Droid, aneb svobodný software do vašeho mobilu. Kromě toho budou k vidění i vývojové desky HiFive1 se svobodným/otevřeným čipem RISC-V.


Přidat komentář

23.5.2018 20:55 /Ondřej Čečák
Od pátku 25.5. proběhne na Fakultě informačních technologií ČVUT v Praze openSUSE Conference. Můžete se těšit na spostu zajímavých přednášek, workshopů a také na Release Party nového openSUSE leap 15.0. V na stejném místě proběhne v sobotu 26.5. i seminář o bezpečnosti CryptoFest.
Přidat komentář

20.5.2018 17:45 /Redakce Linuxsoft.cz
Ve čtvrtek 31. května 2018 připravuje webový magazín BusinessIT ve spolupráci s Best Online Média s.r.o. pátý ročník odborné konference Firemní informační systémy 2018. Akce proběhne v kongresovém centru Vavruška (palác Charitas), Karlovo náměstí 5, Praha 2 (u metra Karlovo náměstí) od 9:00 hod. dopoledne do cca 15 hod. odpoledne. Konference je zaměřena na efektivní využití firemních informačních systémů a na to, jak plně využít jejich potenciál. Podrobnější informace na webových stránkách konfrence.
Přidat komentář

14.5.2018 7:28 /František Kučera
Květnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 17. 5. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: Audio – zvuk v GNU/Linuxu.
Přidat komentář

7.5.2018 16:20 /František Kučera
Na stránkách spolku OpenAlt vyšla fotoreportáž Pražské srazy 2017 dokumentující srazy za uplynulý rok. Květnový pražský sraz na téma audio se bude konat 17. 5. 2018 (místo a čas ještě upřesníme).
Přidat komentář

17.4.2018 0:46 /František Kučera
Dubnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 4. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tématem tohoto srazu bude OpenStreetMap (OSM) aneb svobodné mapy.
Přidat komentář

16.3.2018 22:01 /František Kučera
Kulatý OpenAlt sraz v Praze oslavíme klasicky: u limonády a piva! Přijďte si posedět, dát si dobré jídlo a vybrat z mnoha piv do restaurace Kulový blesk, který najdete v centru Prahy nedaleko metra I. P. Pavlova na adrese Sokolská 13, Praha 2. Sraz se koná ve čtvrtek 22. března a začínáme v 18:00. Heslo: OpenAlt. Vezměte s sebou svoje hračky! Uvítáme, když si s sebou na sraz vezmete svoje oblíbené hračky. Jestli máte nějaký drobný projekt postavený na Arduinu, nějakou zajímavou elektronickou součástku, či třeba i pěkný úlovek z crowdfundingové akce, neváhejte. Oslníte ostatní a o zábavu bude postaráno.
Přidat komentář

13.2.2018 0:41 /František Kučera
Únorový pražský sraz OpenAltu se koná 15. 2. 2018 a tentokrát se vydáme na návštěvu do jednoho pražského datacentra. Sejdeme se v 17:50 v severovýchodní části nástupiště tramvajové zastávky Koh-I-Noor. Po exkurzi se přesuneme do restaurace U Pštrosa (Moskevská 49), kde probereme tradiční témata (svobodný software a hardware, DIY, CNC, SDR, 3D tisk…) a tentokrát bude k vidění i IoT brána od The Things Network.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

20.2.2018 18:48 / Ivan Majer
portal

20.2.2018 15:57 / Jan Havel
Jak využíváte služby cloudu v podnikání?

16.1.2018 1:08 / Ivan Pittner
verejna ip od o2 ubuntu

15.1.2018 17:26 / Mira Harvalik
Re: Jak udělat HTML/Javascript swiping gallery do mobilu?

30.12.2017 20:16 / Michal Knoll
odmocnina

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2018) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze