У овом чланку ћете научити да креирате и увезете прилагођене модуле у Питхону. Такође ћете пронаћи различите технике за увоз и употребу прилагођених и уграђених модула у Питхону.
Видео: Питхон модули
Шта су модули у Питхону?
Модули се односе на датотеку која садржи Питхон изразе и дефиниције.
Датотека која садржи Питхон код, на пример:, example.py
назива се модул и њено име модула би било example
.
Користимо модуле за разградњу великих програма на мале управљачке и организоване датотеке. Даље, модули омогућавају поновну употребу кода.
У модулу можемо дефинисати најчешће коришћене функције и увести га, уместо да копирамо њихове дефиниције у различите програме.
Створимо модул. Откуцајте следеће и сачувајте је као example.py
.
# Python Module example def add(a, b): """This program adds two numbers and return the result""" result = a + b return result
Овде смо дефинисали функцију add()
унутар модула са именом example
. Функција узима два броја и враћа њихов збир.
Како увести модуле у Питхон-у?
Дефиниције унутар модула можемо увести у други модул или интерактивни тумач у Питхону.
За то користимо import
кључну реч. Да бисмо увезли наш претходно дефинисани модул example
, у Питхон упит укуцамо следеће.
>>> import example
Ово не увози имена функција дефинисаних у example
директно у тренутну табелу симбола. Тамо увози само име модула example
.
Коришћењем имена модула можемо приступити функцији користећи тачкасти .
оператор. На пример:
>>> example.add(4,5.5) 9.5
Питхон има мноштво стандардних модула. Можете погледати комплетну листу Питхон стандардних модула и њихове примене употребе. Те датотеке се налазе у директоријуму Либ унутар локације на којој сте инсталирали Питхон.
Стандардни модули се могу увести на исти начин на који увозимо наше кориснички дефинисане модуле.
Постоје различити начини за увоз модула. Они су наведени испод …
Питхон изјава о увозу
Можемо увозити модул помоћу import
израза и приступити дефиницијама унутар њега помоћу оператора тачака као што је горе описано. Ево примера.
# import statement example # to import standard module math import math print("The value of pi is", math.pi)
Када покренете програм, излаз ће бити:
Вредност пи је 3,141592653589793
Увоз са преименовањем
Можемо увозити модул тако што ћемо га преименовати на следећи начин:
# import module by renaming it import math as m print("The value of pi is", m.pi)
math
Модул смо преименовали у m
. То нам у неким случајевима може уштедети време за куцање.
Имајте на уму да име math
није препознато у нашем опсегу. Стога math.pi
је неважећа и m.pi
исправна је примена.
Питхон из … изјаве о увозу
Можемо увозити одређена имена из модула без увоза модула у целини. Ево примера.
# import only pi from math module from math import pi print("The value of pi is", pi)
Овде смо pi
из math
модула увезли само атрибут .
У таквим случајевима не користимо тачкасти оператор. Такође можемо увести више атрибута на следећи начин:
>>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045
Увези сва имена
Сва имена (дефиниције) из модула можемо увести помоћу следеће конструкције:
# import all names from the standard module math from math import * print("The value of pi is", pi)
Овде смо увели све дефиниције из математичког модула. То укључује сва имена која су видљива у нашем опсегу, осим оних која почињу са подвлаком (приватне дефиниције).
Увоз свега са звездицом (*) није добра пракса програмирања. То може довести до дуплираних дефиниција идентификатора. Такође омета читљивост нашег кода.
Пут претраживања модула Питхон
Током увоза модула, Питхон прегледава неколико места. Тумач прво тражи уграђени модул. Затим (ако уграђени модул није пронађен), Питхон прегледава листу директоријума дефинисаних у sys.path
. Потрага је у овом редоследу.
- Тренутни директоријум.
PYTHONPATH
(променљива окружења са листом директорија).- Задани директоријум који зависи од инсталације.
>>> увоз сис >>> сис.патх ('', 'Ц: \ Питхон33 \ Либ \ идлелиб', 'Ц: \ Виндовс \ систем32 \ питхон33.зип', 'Ц: \ Питхон33 \ ДЛЛ-ови ',' Ц: \ Питхон33 \ либ ',' Ц: \ Питхон33 ',' Ц: \ Питхон33 \ либ \ сите-пакети ')
We can add and modify this list to add our own path.
Reloading a module
The Python interpreter imports a module only once during a session. This makes things more efficient. Here is an example to show how this works.
Suppose we have the following code in a module named my_module
.
# This module shows the effect of # multiple imports and reload print("This code got executed")
Now we see the effect of multiple imports.
>>> import my_module This code got executed >>> import my_module >>> import my_module
We can see that our code got executed only once. This goes to say that our module was imported only once.
Now if our module changed during the course of the program, we would have to reload it.One way to do this is to restart the interpreter. But this does not help much.
Python provides a more efficient way of doing this. We can use the reload()
function inside the imp
module to reload a module. We can do it in the following ways:
>>> import imp >>> import my_module This code got executed >>> import my_module >>> imp.reload(my_module) This code got executed
The dir() built-in function
Помоћу dir()
функције можемо да пронађемо имена која су дефинисана унутар модула.
На пример, дефинисали смо функцију add()
у модулу example
коју смо имали на почетку.
Можемо користити dir
у example
модулу на следећи начин:
>>> dir(example) ('__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add')
Овде можемо видети сортирану листу имена (заједно са add
). Сва друга имена која почињу доњом цртом су подразумевани Питхон атрибути повезани са модулом (нису дефинисани од корисника).
На пример, __name__
атрибут садржи име модула.
>>> import example >>> example.__name__ 'example'
Сва имена дефинисана у нашем тренутном простору имена могу се пронаћи помоћу dir()
функције без икаквих аргумената.
>>> a = 1 >>> b = "hello" >>> import math >>> dir() ('__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter')