Модули на Python: Научете се да създавате и импортирате персонализирани и вградени модули

В тази статия ще се научите да създавате и импортирате персонализирани модули в Python. Също така ще намерите различни техники за импортиране и използване на персонализирани и вградени модули в Python.

Видео: Python модули

Какво представляват модулите в Python?

Модулите се отнасят до файл, съдържащ Python изрази и дефиниции.

Файл, съдържащ код на Python, например:, 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. Функцията приема две числа и връща тяхната сума.

Как да импортирам модули в Python?

Можем да импортираме дефинициите вътре в модул в друг модул или интерактивния интерпретатор в Python.

Използваме importключовата дума за това. За да импортираме нашия предварително дефиниран модул example, въвеждаме следното в подканата на Python.

 >>> import example

Това не импортира имената на функциите, дефинирани в exampleдиректно в текущата таблица със символи. Той само импортира името на модула exampleтам.

Използвайки името на модула, можем да получим достъп до функцията с помощта на точков .оператор. Например:

 >>> example.add(4,5.5) 9.5

Python има много стандартни модули. Можете да разгледате пълния списък на стандартните модули на Python и техните случаи на използване. Тези файлове се намират в директорията Lib в мястото, където сте инсталирали Python.

Стандартните модули могат да бъдат импортирани по същия начин, както ние импортираме нашите потребителски дефинирани модули.

Има различни начини за импортиране на модули. Те са изброени по-долу …

Изявление за импортиране на Python

Можем да импортираме модул, използвайки importизраза, и да получим достъп до дефинициите в него, използвайки точков оператор, както е описано по-горе. Ето един пример.

 # import statement example # to import standard module math import math print("The value of pi is", math.pi)

Когато стартирате програмата, изходът ще бъде:

 Стойността на 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е правилното изпълнение.

Python от … изявление за импортиране

Можем да импортираме конкретни имена от модул, без да импортираме модула като цяло. Ето един пример.

 # 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)

Тук сме импортирали всички дефиниции от математическия модул. Това включва всички имена, видими в нашия обхват, с изключение на тези, които започват с долна черта (частни дефиниции).

Importing everything with the asterisk (*) symbol is not a good programming practice. This can lead to duplicate definitions for an identifier. It also hampers the readability of our code.

Python Module Search Path

While importing a module, Python looks at several places. Interpreter first looks for a built-in module. Then(if built-in module not found), Python looks into a list of directories defined in sys.path. The search is in this order.

  • The current directory.
  • PYTHONPATH (an environment variable with a list of directories).
  • The installation-dependent default directory.
 >>> import sys >>> sys.path ('', 'C:\Python33\Lib\idlelib', 'C:\Windows\system32\python33.zip', 'C:\Python33\DLLs', 'C:\Python33\lib', 'C:\Python33', 'C:\Python33\lib\site-packages')

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). Всички други имена, които започват с долна черта, са атрибути по подразбиране на Python, свързани с модула (не са дефинирани от потребителя).

Например __name__атрибутът съдържа името на модула.

 >>> import example >>> example.__name__ 'example'

Всички имена, дефинирани в нашето текущо пространство от имена, могат да бъдат открити с помощта на dir()функцията без никакви аргументи.

 >>> a = 1 >>> b = "hello" >>> import math >>> dir() ('__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter')

Интересни статии...