Latest web development tutorials

Módulos Python

Módulo permite organizar logicamente o seu código Python.

Atribuir o código relevante em um módulo para tornar o código mais fácil de usar, mais compreensível.

módulos Python são objetos com atributo de nome aleatório é usado para ligar ou referência.

Simplificando, o módulo é um código Python para salvar o arquivo. Os módulos podem definir funções, classes e variáveis. Módulo pode conter código executável.

exemplo

módulo aname chamada em código Python em geral, pode ser encontrada em um arquivo chamado aname.py. O exemplo que se segue é uma simples support.py módulo.

def print_func( par ):
   print "Hello : ", par
   return


declaração de importação

Quer usar o arquivo de origem Python, simplesmente executar outra instrução de importação no arquivo de origem, a sintaxe é a seguinte:

import module1[, module2[,... moduleN]

Quando o interpretador encontra a instrução de importação, se o módulo será importado no actual caminho de pesquisa.

O caminho da busca é um intérprete irá primeiro procurar uma lista de todos os diretórios. Como você deseja importar módulo support.py, você precisa colocar o comando no topo do script:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入模块
import support
 
# 现在可以调用模块里包含的函数了
support.print_func("Zara")

Exemplos de saída acima:

Hello : Zara

Um módulo só será importado uma vez, não importa quantas vezes você executar importação. Isso impede que o módulo de importação é executada uma e outra vez.



A partir ... instrução de importação

Python permite importar uma declaração de uma parcela especificada do módulo no namespace atual. A sintaxe é a seguinte:

from modname import name1[, name2[, ... nameN]]

Por exemplo, para importar a função fibonacci módulo de lorota, use a seguinte declaração:

from fib import fibonacci

Esta afirmação não fib todo o módulo no namespace atual, ela só vai fib pista Fibonacci introduziu em uma única implementação global da tabela de símbolos deste módulo declaração.



A partir ... import * declaração

Todos os conteúdos de um módulo são todos no espaço de nomes atual são possíveis, basta usar a seguinte declaração:

from modname import *

Isso fornece uma maneira fácil de importar um módulo em todos os projetos. No entanto, esta afirmação não deve ser demasiado de usar.



módulo de posicionamento

Quando você importa um módulo, Python analisador módulo posição de ordem de pesquisa é:

  • diretório atual
  • Se não estiver no diretório atual, Python irá procurar cada diretório no PYTHONPATH variável shell.
  • Se você não consegue encontrar, Python vai olhar para o caminho padrão. Sob UNIX, o caminho padrão é normalmente / usr / local / lib / python /.

caminho de pesquisa de módulo é armazenado em módulos do sistema variável sys.path. Variável contém o diretório atual, PYTHONPATH eo diretório de instalação padrão, o processo de tomada de decisão.



variável PYTHONPATH

Como uma variável de ambiente, PYTHONPATH pela montado em uma lista de muitos dos diretórios. shell PYTHONPATH sintaxe PATH variável e o mesmo.

Em sistemas Windows, o PYTHONPATH típica da seguinte forma:

set PYTHONPATH=c:\python20\lib;

Em sistemas UNIX, o PYTHONPATH típica da seguinte forma:

set PYTHONPATH=/usr/local/lib/python


Namespaces e escopos

Variável é o nome do objecto tem um correspondente (identificador). Namespace é uma variável que contém o nome de seu (key) e seus respectivos objetos são (valor) de dicionários.

Uma expressão Python pode acessar variável namespace namespace local e global. Se uma variável local com o mesmo nome de uma variável global, a variável local substituirá a variável global.

Cada função tem seu próprio namespace. Âmbito governa como métodos de classe e funções normalmente.

Python acho inteligente uma variável é local ou global, supõe-se que qualquer variável dentro de uma atribuição de função é local.

Portanto, se você dá um atribuições de variáveis ​​globais em uma função, você deve usar a instrução global.

expressão mundial VarName diz Python, VarName é uma variável global, então Python não encontrar essa variável no espaço de nomes local.

Por exemplo, nós definimos um dinheiro variável no namespace global. Em seguida, dentro da função atribuída ao dinheiro variável, então Python assumirá que o dinheiro é uma variável local. No entanto, nós não declarar uma variável local antes de acessar o dinheiro, o resultado é que haverá um erro UnboundLocalError. Cancelamento de observações globais declaração pode resolver este problema.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
Money = 2000
def AddMoney():
   # 想改正代码就取消以下注释:
   # global Money
   Money = Money + 1
 
print Money
AddMoney()
print Money


função dir ()

função dir () é uma lista de strings remar boa sequência, o conteúdo é um nome definido módulo.

Retorna uma lista de todos os módulos para acomodar, variáveis ​​e funções definidas em um módulo. Um exemplo simples é a seguinte:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入内置math模块
import math
 
content = dir(math)
 
print content;

Exemplos de saída acima:

['__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, corda especial nome do ponto de __name__ variável do módulo, __ ponto file__ importar nome do módulo de arquivo.



globals () e locais () função

Dependendo chamadas locais, globals () e locais () função pode ser usada para retornar o nome global e local namespace.

Se você chamar os locais dentro da função (), os retornos podem acessar todas as funções no nome.

Se você chamar globals () dentro da função retorna todos os nomes das funções no acesso à energia global.

Ambas as funções retornam tipo é o dicionário. Assim, o nome que usamos chaves () de remoção de função.



função de recarga ()

Quando um módulo é introduzido no topo de uma parte módulo de script do código é executado apenas uma vez.

Então, se você quer re-executar o módulo na parte superior do código, você pode usar a função de recarga (). Esta função irá ser re-importados antes de o módulo importado. A sintaxe é a seguinte:

reload(module_name)

Aqui, module_name nome do módulo para ser colocado diretamente, em vez de uma cadeia. Por exemplo, você deseja substituir o módulo Olá, como segue:

reload(hello)


Pacotes Python

Pacote é uma estrutura de diretórios hierárquica, que define um pacote filho pelos módulos e sub-pacotes e subpackages sob outros componentes do ambiente do aplicativo Python.

Considere um arquivo pots.py no diretório de telefone. Este arquivo tem o seguinte código fonte:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
def Pots():
   print "I'm Pots Phone"
   

Da mesma forma, temos duas funções diferentes para salvar o arquivo:

  • Telefone / contendo função Isdn.py RDIS ()
  • Telefone / G3.py contendo função G3 ()

Agora, crie um __init__.py arquivo no Diretório Telefone:

  • Telefone / __ init__.py

Ao importar o telefone, para ser capaz de usar todas as funções que você precisa usar um explícitas declarações de importação nos anos __init__.py, como segue:

from Pots import Pots
from Isdn import Isdn
from G3 import G3

Quando você adiciona o código para __init__.py, pacote de telefone importado quando essas classes estão todos disponíveis na internet.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入 Phone 包
import Phone
 
Phone.Pots()
Phone.Isdn()
Phone.G3()

Exemplos de saída acima:

I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone

Como, por exemplo, temos apenas uma função em cada arquivo, mas na verdade, você pode colocar um monte de funções. Você também pode definir uma classe Python nestes arquivos, e então construir um pacote para estas classes.