Módulos Python: aprenda a criar e importar módulos personalizados e integrados

Neste artigo, você aprenderá a criar e importar módulos personalizados em Python. Além disso, você encontrará diferentes técnicas para importar e usar módulos personalizados e integrados no Python.

Vídeo: Módulos Python

O que são módulos em Python?

Módulos referem-se a um arquivo contendo instruções e definições Python.

Um arquivo contendo código Python, por exemplo:, example.pyé chamado de módulo e seu nome de módulo seria example.

Usamos módulos para dividir programas grandes em pequenos arquivos gerenciáveis ​​e organizados. Além disso, os módulos fornecem capacidade de reutilização de código.

Podemos definir nossas funções mais usadas em um módulo e importá-lo, em vez de copiar suas definições em programas diferentes.

Vamos criar um módulo. Digite o seguinte e salve-o como example.py.

 # Python Module example def add(a, b): """This program adds two numbers and return the result""" result = a + b return result

Aqui, definimos uma função add()dentro de um módulo chamado example. A função obtém dois números e retorna sua soma.

Como importar módulos em Python?

Podemos importar as definições de um módulo para outro módulo ou o interpretador interativo em Python.

Usamos a importpalavra-chave para fazer isso. Para importar nosso módulo definido anteriormente example, digitamos o seguinte no prompt do Python.

 >>> import example

Isso não importa os nomes das funções definidas examplediretamente na tabela de símbolos atual. Ele importa apenas o nome do módulo para examplelá.

Usando o nome do módulo, podemos acessar a função usando o .operador ponto . Por exemplo:

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

Python tem vários módulos padrão. Você pode verificar a lista completa de módulos padrão Python e seus casos de uso. Esses arquivos estão no diretório Lib dentro do local onde você instalou o Python.

Módulos padrão podem ser importados da mesma maneira que importamos nossos módulos definidos pelo usuário.

Existem várias maneiras de importar módulos. Eles estão listados abaixo …

Instrução de importação Python

Podemos importar um módulo usando a importinstrução e acessar as definições dentro dele usando o operador ponto conforme descrito acima. Aqui está um exemplo.

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

Quando você executa o programa, a saída será:

 O valor de pi é 3,141592653589793

Importar com renomeação

Podemos importar um módulo renomeando-o da seguinte maneira:

 # import module by renaming it import math as m print("The value of pi is", m.pi)

Renomeamos o mathmódulo como m. Isso pode nos economizar tempo de digitação em alguns casos.

Observe que o nome mathnão é reconhecido em nosso escopo. Portanto, math.pié inválido e m.pié a implementação correta.

Python de… declaração de importação

Podemos importar nomes específicos de um módulo sem importar o módulo como um todo. Aqui está um exemplo.

 # import only pi from math module from math import pi print("The value of pi is", pi)

Aqui, importamos apenas o piatributo do mathmódulo.

Nesses casos, não usamos o operador ponto. Também podemos importar vários atributos da seguinte maneira:

 >>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045

Importar todos os nomes

Podemos importar todos os nomes (definições) de um módulo usando a seguinte construção:

 # import all names from the standard module math from math import * print("The value of pi is", pi)

Aqui, importamos todas as definições do módulo matemático. Isso inclui todos os nomes visíveis em nosso escopo, exceto aqueles que começam com um sublinhado (definições privadas).

Importar tudo com o símbolo de asterisco (*) não é uma boa prática de programação. Isso pode levar a definições duplicadas para um identificador. Isso também dificulta a legibilidade do nosso código.

Caminho de pesquisa do módulo Python

Ao importar um módulo, Python examina vários lugares. O intérprete primeiro procura um módulo integrado. Então (se built-in módulo não encontrado), Python olha para uma lista de diretórios definidos no sys.path. A pesquisa está nesta ordem.

  • O diretório atual.
  • PYTHONPATH (uma variável de ambiente com uma lista de diretórios).
  • O diretório padrão dependente da instalação.
 >>> 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

Podemos usar a dir()função para descobrir nomes que são definidos dentro de um módulo.

Por exemplo, definimos uma função add()no módulo exampleque tínhamos no início.

Podemos usar dirno examplemódulo da seguinte maneira:

 >>> dir(example) ('__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add')

Aqui, podemos ver uma lista ordenada de nomes (junto com add). Todos os outros nomes que começam com um sublinhado são atributos padrão do Python associados ao módulo (não definidos pelo usuário).

Por exemplo, o __name__atributo contém o nome do módulo.

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

Todos os nomes definidos em nosso namespace atual podem ser encontrados usando a dir()função sem nenhum argumento.

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

Artigos interessantes...