Latest web development tutorials

I moduli Python

Modulo consente di organizzare logicamente il codice Python.

Assegnazione del codice in questione in un modulo per rendere il codice più facile da usare, più comprensibile.

moduli Python sono oggetti con l'attributo nome casuale viene utilizzato per legare o di riferimento.

In poche parole, il modulo è un codice Python per salvare il file. I moduli possono definire funzioni, classi e variabili. Il modulo può contenere codice eseguibile.

esempio

Modulo aname Chiamato in codice Python in generale, può essere trovato in un file chiamato aname.py. Il seguente esempio è un semplice support.py modulo.

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


istruzione import

Vuoi usare file sorgente Python, semplicemente eseguire un'altra istruzione import nel file di origine, la sintassi è la seguente:

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

Quando l'interprete incontra l'istruzione import, se il modulo sarà importato nel percorso di ricerca corrente.

Il percorso di ricerca è un interprete sarà prima la ricerca di un elenco di tutte le directory. Come si desidera importare il modulo support.py, è necessario mettere il comando nella parte superiore dello script:

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

Esempi di uscita sopra:

Hello : Zara

Un modulo sarà importata solo una volta, non importa quante volte si esegue l'importazione. Ciò impedisce che il modulo di importazione viene eseguito più e più volte.



Da ... istruzione import

Python consente di importare una dichiarazione da una porzione specificata dal modulo nello spazio dei nomi corrente. La sintassi è la seguente:

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

Ad esempio, per importare la funzione di Fibonacci modulo di fib, utilizzare la seguente istruzione:

from fib import fibonacci

Questa affermazione non fib l'intero modulo nel namespace corrente, sarà fib solo corsia Fibonacci introdotto in una singola implementazione simbolo tabella globale di questo modulo dichiarazione.



Da ... import * dichiarazione

Tutti i contenuti di un modulo sono tutti nel namespace corrente sono possibili, è sufficiente utilizzare la seguente dichiarazione:

from modname import *

Questo fornisce un modo semplice per importare un modulo in tutti i progetti. Tuttavia, questa affermazione non dovrebbe essere troppo da usare.



modulo di posizionamento

Quando si importa un modulo Python parser modulo di posizione ordine di ricerca è:

  • directory corrente
  • Se non è nella directory corrente, Python cercherà ogni directory nel PYTHONPATH variabile di shell.
  • Se non riuscite a trovare, Python esaminerà il percorso predefinito. Sotto Unix, il percorso predefinito di solito è / usr / local / lib / python /.

percorso di ricerca del modulo viene memorizzato in moduli del sistema variabile sys.path. Variabile contiene la directory corrente, PYTHONPATH e la directory di installazione predefinita dal processo decisionale.



variabile PYTHONPATH

Come una variabile di ambiente, PYTHONPATH dalla montato in un elenco di molte delle directory. shell PYTHONPATH sintassi del percorso variabile e la stessa.

Sui sistemi Windows, il PYTHONPATH tipico come segue:

set PYTHONPATH=c:\python20\lib;

Su sistemi UNIX, la PYTHONPATH tipico come segue:

set PYTHONPATH=/usr/local/lib/python


Namespace e scopi

Variabile è il nome dell'oggetto ha un corrispondente (identificativo). Spazio dei nomi è una variabile che contiene il nome del loro (chiave) e loro rispettivi oggetti sono (valore) di dizionari.

Un'espressione Python può accedere variabile namespace namespace locale e globale. Se una variabile locale con lo stesso nome di una variabile globale, la variabile locale sovrascriverà la variabile globale.

Ogni funzione ha il proprio spazio dei nomi. Modalità di applicazione come metodi di classe e le funzioni normalmente.

Python in modo intelligente indovinare una variabile è locale o globale, si presume che ogni variabile all'interno di un incarico di funzione è locale.

Pertanto, se si dà un assegnazioni di variabili globali in una funzione, è necessario utilizzare l'istruzione globale.

espressione globale VarName dice a Python, VarName è una variabile globale, quindi Python non trova questa variabile nello spazio dei nomi locale.

Per esempio, definiamo un denaro variabile nel namespace globale. Abbiamo poi all'interno della funzione assegnata al denaro variabile, quindi Python assumeremo che il denaro è una variabile locale. Tuttavia, non ha dichiarato una variabile locale prima di accedere al denaro, il risultato è che ci sarà un errore UnboundLocalError. Cancellazione commenti dichiarazione global in grado di risolvere questo problema.

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


funzione Dir ()

la funzione dir () è una lista di stringhe riga buona sequenza, il contenuto è un nome definito del modulo.

Restituisce un elenco di tutti i moduli per ospitare, le variabili e le funzioni definite in un modulo. Un semplice esempio è il seguente:

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

Esempi di uscita sopra:

['__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']

Qui, stringa speciale variabile __name__ nome del punto del modulo, __ punto FILE__ importare nome del file del modulo.



globali () e locali () funzione

A seconda delle chiamate locali, globali () e locali () può essere utilizzata per restituire il nome del namespace globale e locale.

Se si chiama la gente del posto all'interno della funzione (), i rendimenti possono accedere a tutte le funzioni nel nome.

Se si chiama globali () all'interno della funzione restituisce tutti i nomi delle funzioni di accesso globale di energia.

Entrambe le funzioni restituiscono tipo è il dizionario. Così il nome che usiamo i tasti () la rimozione della funzione.



reload function ()

Quando un modulo viene introdotto in una sua parte superiore modulo di script del codice viene eseguito solo una volta.

Quindi, se si desidera eseguire nuovamente il modulo nella parte superiore del codice, è possibile utilizzare la funzione di ricarica (). Questa funzione viene reimportato prima che il modulo importato. La sintassi è la seguente:

reload(module_name)

Qui, module_name nome del modulo per essere posizionato direttamente, invece di una stringa. Per esempio, si desidera ignorare il modulo ciao, come segue:

reload(hello)


Pacchetti Python

Il pacchetto è una struttura di directory gerarchica, che definisce un pacchetto figlio dai moduli e sub-pacchetti e sottopacchetti nell'ambito di altri componenti dell'ambiente applicazione Python.

Consideriamo un file pots.py nella rubrica telefonica. Questo file ha il seguente codice sorgente:

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

Allo stesso modo, abbiamo due diverse funzioni per salvare il file:

  • Telefono / Isdn.py funzione di contenimento ISDN ()
  • Telefono / G3.py contenente la funzione G3 ()

Ora, creare un file __init__.py nella directory Telefono:

  • Telefono / __ init__.py

Quando si importa il telefono, per essere in grado di utilizzare tutte le funzioni necessarie per utilizzare un esplicite istruzioni di importazione in anni __init__.py, come segue:

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

Quando si aggiunge il codice per __init__.py, Telefono pacchetto importato quando queste classi sono tutti disponibili sul.

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

Esempi di uscita sopra:

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

Come, per esempio, abbiamo una sola funzione in ogni file, ma in realtà si può mettere un sacco di funzioni. È inoltre possibile definire una classe Python in questi file, e quindi costruire un pacchetto per queste classi.