Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Python - Módulos

Página anteriorPróxima página
Um módulo permite que você organize logicamente seu código Python. Agrupar código relacionado em um módulo torna o código mais fácil de entender e usar. Um módulo é um objeto Python com atributos nomeados arbitrariamente que você pode vincular e referenciar.

Simplesmente, um módulo é um arquivo que consiste em código Python. Um módulo pode definir funções, classes e variáveis. Um módulo também pode incluir código executável.

Exemplo


O código Python para um módulo chamado aname normalmente reside em um arquivo chamado aname.py . Aqui está um exemplo de um módulo simples, support.py
def print_func( par ):
   print "Hello : ", par
   return

A importação Declaração


Você pode usar qualquer arquivo de origem do Python como um módulo executando uma instrução de importação em algum outro arquivo de origem do Python. A importação tem a seguinte sintaxe -
import module1[, module2[,... moduleN]

Quando o interpretador encontra uma instrução de importação, ele importa o módulo se o módulo estiver presente no caminho de pesquisa. Um caminho de pesquisa é uma lista de diretórios que o interpretador pesquisa antes de importar um módulo. Por exemplo, para importar o módulo support.py, você precisa colocar o seguinte comando no topo do script −
#!/usr/bin/python

# Import module support
import support

# Now you can call defined function that module as follows
support.print_func("Zara")

Quando o código acima é executado, ele produz o seguinte resultado -
Hello : Zara

Um módulo é carregado apenas uma vez, independentemente do número de vezes que é importado. Isso evita que a execução do módulo aconteça repetidamente se ocorrerem várias importações.

A de...importação Declaração


de do Python A instrução permite importar atributos específicos de um módulo para o namespace atual. A de...importação tem a seguinte sintaxe -
from modname import name1[, name2[, ... nameN]]

Por exemplo, para importar a função fibonacci do módulo fib, use a seguinte instrução −
from fib import fibonacci

Esta instrução não importa o módulo inteiro fib para o namespace atual; ele apenas introduz o item fibonacci do módulo fib na tabela de símbolos global do módulo importador.

A de...importação * Declaração


Também é possível importar todos os nomes de um módulo para o namespace atual usando a seguinte instrução de importação −
from modname import *

Isso fornece uma maneira fácil de importar todos os itens de um módulo para o namespace atual; no entanto, esta declaração deve ser usada com moderação.

Localizando Módulos


Quando você importa um módulo, o interpretador Python procura o módulo nas seguintes sequências −

O caminho de pesquisa do módulo é armazenado no módulo do sistema sys como sys.path variável. A variável sys.path contém o diretório atual, PYTHONPATH, e o padrão dependente da instalação.

O PYTHONPATH Variável


O PYTHONPATH é uma variável de ambiente, que consiste em uma lista de diretórios. A sintaxe de PYTHONPATH é a mesma da variável de shell PATH.

Aqui está um PYTHONPATH típico de um sistema Windows -
set PYTHONPATH = c:\python20\lib;

E aqui está um PYTHONPATH típico de um sistema UNIX -
set PYTHONPATH = /usr/local/lib/python

Espaços de nomes e escopo


Variáveis ​​são nomes (identificadores) que mapeiam para objetos. Um namespace é um dicionário de nomes de variáveis ​​(chaves) e seus objetos correspondentes (valores).

Uma instrução Python pode acessar variáveis ​​em um espaço de nomes local e no espaço de nomes global . Se uma variável local e uma global tiverem o mesmo nome, a variável local ocultará a variável global.

Cada função tem seu próprio namespace local. Os métodos de classe seguem a mesma regra de escopo que as funções comuns.

Python faz suposições educadas sobre se as variáveis ​​são locais ou globais. Ele assume que qualquer variável atribuída a um valor em uma função é local.

Portanto, para atribuir um valor a uma variável global em uma função, você deve primeiro usar a instrução global.

A declaração global VarName diz ao Python que VarName é uma variável global. O Python para de pesquisar o namespace local pela variável.

Por exemplo, definimos uma variável Money no namespace global. Dentro da função Dinheiro , atribuímos Dinheiro um valor, portanto, Python assume Money como uma variável local. No entanto, acessamos o valor da variável local Money antes de configurá-lo, então um UnboundLocalError é o resultado. Descomentar a instrução global corrige o problema.
#!/usr/bin/python

Money = 2000
def AddMoney():
   # Uncomment the following line to fix the code:
   # global Money
   Money = Money + 1

print Money
AddMoney()
print Money

A função dir( )


A função interna dir() retorna uma lista ordenada de strings contendo os nomes definidos por um módulo.

A lista contém os nomes de todos os módulos, variáveis ​​e funções definidas em um módulo. A seguir está um exemplo simples -
Demonstração ao vivo
#!/usr/bin/python

# Import built-in module math
import math

content = dir(math)
print content

Quando o código acima é executado, ele produz o seguinte resultado -
['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 
'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 
'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 
'sqrt', 'tan', 'tanh']

Aqui, a variável de string especial __name__ é o nome do módulo e __file__ é o nome do arquivo do qual o módulo foi carregado.

Os globais() e locals() Funções


Os globais() e locals() As funções podem ser usadas para retornar os nomes nos namespaces globais e locais dependendo do local de onde são chamados.

Se locals() for chamado de dentro de uma função, ele retornará todos os nomes que podem ser acessados ​​localmente a partir dessa função.

Se globals() for chamado de dentro de uma função, ele retornará todos os nomes que podem ser acessados ​​globalmente a partir dessa função.

O tipo de retorno de ambas as funções é dicionário. Portanto, os nomes podem ser extraídos usando a função keys().

O recarregar() Função


Quando o módulo é importado para um script, o código na parte de nível superior de um módulo é executado apenas uma vez.

Portanto, se você deseja reexecutar o código de nível superior em um módulo, você pode usar o reload() função. A função reload() importa novamente um módulo importado anteriormente. A sintaxe da função reload() é esta −
reload(module_name)

Aqui, module_name é o nome do módulo que você deseja recarregar e não a string que contém o nome do módulo. Por exemplo, para recarregar hello módulo, faça o seguinte -
reload(hello)

Pacotes em Python


Um pacote é uma estrutura hierárquica de diretórios de arquivos que define um único ambiente de aplicativo Python que consiste em módulos e subpacotes e subpacotes e assim por diante.

Considere um arquivo Pots.py disponível em Telefone diretório. Este arquivo tem a seguinte linha de código-fonte -
#!/usr/bin/python

def Pots():
   print "I'm Pots Phone"

De maneira semelhante, temos outros dois arquivos com funções diferentes com o mesmo nome acima -

Agora, crie mais um arquivo __init__.py em Telefone diretório -

Para disponibilizar todas as suas funções ao importar o telefone, você precisa colocar instruções de importação explícitas em __init__.py da seguinte forma −
from Pots import Pots
from Isdn import Isdn
from G3 import G3

Depois de adicionar essas linhas a __init__.py, você terá todas essas classes disponíveis ao importar o pacote Phone.
#!/usr/bin/python

# Now import your Phone Package.
import Phone

Phone.Pots()
Phone.Isdn()
Phone.G3()

Quando o código acima é executado, ele produz o seguinte resultado -
I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone

No exemplo acima, tomamos como exemplo uma única função em cada arquivo, mas você pode manter várias funções em seus arquivos. Você também pode definir diferentes classes Python nesses arquivos e, em seguida, criar seus pacotes a partir dessas classes.

python

  1. Tipos de dados Python
  2. Entrada, Saída e Importação do Python
  3. Operadores Python
  4. Argumentos da função Python
  5. Módulos Python
  6. Dicionário Python
  7. Iteradores Python
  8. Fechamentos Python
  9. Data e hora do Python
  10. Módulo de tempo Python