Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Moduly.

Podobné prezentace


Prezentace na téma: "Moduly."— Transkript prezentace:

1 Moduly

2 Moduly jsou obdobou knihoven v jazyce C nebo Pascal
Moduly jsou obdobou knihoven v jazyce C nebo Pascal. Jsou to obyčejné textové soubory s příponou .py (nebo zkompilované soubory s příponou .pyc). Mohou obsahovat funkce, proměnné, třídy, objekty atd. Existuje mnoho standardních modulů a ještě více si jich můžete stáhnout. Všechno, co je v modulech, si lze samostatně naprogramovat, avšak znalost těchto doplňků nám může ušetřit mnoho práce.

3 V Pythonu je ve standardní knihovně k dispozici mnoho modulů
V Pythonu je ve standardní knihovně k dispozici mnoho modulů. Jedná se například o moduly: string - operace s řetězci (převod mezi čísly a řetězci, dělení a spojování řetězců, převod na malá a velká písmena) os - nejrůznější interface k službám operačního systému, spouštění procesů, operace s cestami v OS time - práce s časem re - práce s regulárními výrazy

4 numpy - knihovna pro práci s numerickými daty
math - matematické funkce csv - podpora pro CSV cmd - příkazová řádka tempfile - práce s dočasnými objekty pickle – ukládání a načítání objektů do souborů a mnoho a mnoho dalších …

5 Obecně moduly zavádíme příkazem import (zavede do lokálního prostoru jmen objekt modulu), například
>>> import muj_modul >>> import muj_modul as jmeno Existuje ale i varianta příkazu import, která rovnou zavede některé (popř. všechny) objekty z určitého modulu. >>> from muj_modul import mod1, mod2 >>> from muj_modul import *

6 Ukažme si názorný příklad s využitím modulu math:
>>> import math >>> math.factorial(6) 720 >>> math.pi >>> from math import pi, factorial >>> pi >>> factorial(6)

7 Jak již víme, moduly jsou obyčejné textové soubory s příponou. py
Jak již víme, moduly jsou obyčejné textové soubory s příponou .py. Nyní si zkusíme vytvořit vlastní modul, který bude umět vypočítat faktoriál zvoleného čísla (obdobně jako funkce factorial z modulu math): def faktorial(n): if n == 0: return 1 else: return n * faktorial(n-1) -uložení souboru jako pokus.py Poznámka – v uvedeném příkladu je použita rekurze, tj. proces, při kterém funkce volá samu sebe

8 A poté již známým způsobem modul naimportujeme a provedeme výpočet faktoriálu.
>>> import pokus >>> pokus.faktorial(6) 720 nebo >>> from pokus import faktorial >>> factorial(6)

9 Pro zrychlení spouštění krátkých programů, používajících velké množství standardních modulů, používá Python soubory s příponou .pyc, tzv. kompilované moduly. Pokud se kód pokusí zavést například námi vytvořený modul muj_modul a interpretr najde vedle souboru muj_modul.py i soubor muj_modul.pyc, považuje tento soubor za zkompilovaný modul. Proto porovná čas modifikace souboru muj_modul.py s časem zaznamenaným v souboru muj_modul.pyc. Jestliže jsou tyto časy shodné, rozhodne, že soubor muj_modul.pyc byl vytvořen ze souboru muj_modul.py a použije ho místo něj.

10 Tím dojde k významnému urychlení zavedení modulu, není třeba jeho kód znovu překládat do bytekódu, protože se použije již přeložená verze. O vytvoření souboru muj_modul.pyc se programátor nemusí vůbec starat, interpretr ho vytváří zcela sám vždy, když se mu podaří kód souboru muj_modul.py úspěšně přeložit do bytového kódu. Jestliže se soubor nepodaří vytvořit (důvodem může být například plný disk nebo nedostatečná práva uživatele), nedojde k chybě a při příštím importu modulu bude byte kód vytvořen znovu.

11 Moduly je také možné sdružovat do balíčků
Moduly je také možné sdružovat do balíčků. Balíček je obyčejným adresářem, obsahujícím skupinu modulů a soubor s názvem __init__.py. Tyto balíčky umožňují hierarchickou organizaci modulů, například: Zvuk/ # Hlavní balíček __init__.py # Inicializace balíčku Format/ # Balíček pro audio formáty __init__.py wav.py mp3.py Efekt/ # Balíček pro zvukové efekty echo.py

12 >>> import zvuk.format.wav
Uživatelé mohou z balíčku přímo importovat jednotlivé moduly následujícím způsobem: >>> import zvuk.format.wav >>> from zvuk.format import wav Moduly uvnitř balíčků se mohou na jiné moduly uvnitř stejných balíčků odkazovat relativní cestou. Tečka označuje aktuální balíček a dvě tečky nadřazený. >>> from . import echo >>> from .. import format >>> from .. format import wav

13


Stáhnout ppt "Moduly."

Podobné prezentace


Reklamy Google