Latest web development tutorials

Moduły Pythona

Moduł pozwala logicznie uporządkować kodu Pythona.

Przypisywanie odpowiedni kod do modułu, aby Twój kod łatwiejszy w obsłudze, bardziej zrozumiałe.

Moduły Pythona to obiekty z losowego atrybutu nazwa jest używana do wiązania lub odniesienie.

Mówiąc najprościej, moduł jest kodem Pythona, aby zapisać plik. Moduły mogą definiować funkcje, klasy i zmiennych. Moduł może zawierać kod wykonywalny.

przykład

Wywoływana Moduł nazwa_a w kodzie Pythona w ogóle można znaleźć w pliku o nazwie aname.py. Poniższy przykład jest prosty moduł support.py.

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


instrukcja import

Chcesz skorzystać z pliku źródłowego Pythona, wystarczy wykonać inną instrukcję import z pliku źródłowego, składnia jest następująca:

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

Gdy interpreter napotka instrukcji import, jeśli moduł zostanie przywieziony w bieżącej ścieżce wyszukiwania.

Ścieżka przeszukiwania jest interpreter będzie najpierw sprawdzić listę wszystkich katalogów. Jak chcesz zaimportować moduł support.py, należy umieścić polecenie na początku skryptu:

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

Przykłady wyżej wyjścia:

Hello : Zara

Moduł zostaną zaimportowane tylko raz, bez względu na to ile razy można wykonać import. Zapobiega to moduł importu jest wykonywany w kółko.



Z instrukcji import ...

Python pozwala na importowanie oświadczenie z określonej części z modułu do bieżącej przestrzeni nazw. Składnia jest następująca:

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

Na przykład, aby zaimportować moduł funkcji Fibonacciego FIB, należy użyć następującego oświadczenia:

from fib import fibonacci

To stwierdzenie nie fib cały moduł do bieżącej przestrzeni nazw, to fib tylko Lane Fibonacciego wprowadzony do jednego globalnego wdrożenia tabeli symbolem tego modułu deklaracji.



Od ... import rachunku *

Cała zawartość modułu są do bieżącej przestrzeni nazw są możliwe, wystarczy użyć następujące oświadczenie:

from modname import *

Zapewnia to łatwy sposób zaimportować moduł we wszystkich projektach. Jednak to stwierdzenie nie powinno być zbyt dużo do użycia.



moduł pozycjonowania

Podczas importowania moduł, Python parser Moduł pozycji wyszukiwania zamówienia jest:

  • Aktualny katalog
  • Jeśli nie jest w bieżącym katalogu, Python przeszuka każdego katalogu w powłoce zmiennej PYTHONPATH.
  • Jeśli nie można znaleźć, Python będzie patrzeć na domyślnej ścieżce. Pod UNIX, domyślna ścieżka to zwykle / usr / local / lib / python /.

Ścieżka przeszukiwania Moduł jest przechowywany w zmiennej sys.path modułów systemowych. Zmienna zawiera aktualny katalog, PYTHONPATH i domyślny katalog instalacyjny w procesie decyzyjnym.



zmiennej PYTHONPATH

Jako zmiennej środowiskowej PYTHONPATH przez zamontowaną na liście wielu katalogów. PYTHONPATH składni powłoki zmienna PATH i to samo.

W systemach Windows, typowa PYTHONPATH w następujący sposób:

set PYTHONPATH=c:\python20\lib;

W systemach UNIX, typowy PYTHONPATH w następujący sposób:

set PYTHONPATH=/usr/local/lib/python


Przestrzenie nazw i zakresy

Zmienna to nazwa obiektu ma dopasowanie (identyfikator). Przestrzeń nazw jest zmienną, która zawiera nazwę ich (klawisz) oraz ich obiekty są (wartość) słowników.

Wyrażenie Python może uzyskać dostęp do zmiennej namespace namespace lokalnej i globalnej. Jeśli zmiennej lokalnej o tej samej nazwie, jak zmienna globalna, lokalna zmienna zastąpi zmienną globalną.

Każda funkcja posiada własną przestrzeń nazw. Zakres rządzi jako metody klasy i funkcje normalnie.

Python inteligentnie domyślić zmienna jest lokalny czy globalny, zakłada się, że każda zmienna w przypisaną funkcją jest lokalny.

Dlatego też, jeśli dać globalnych przypisań zmiennych w funkcji, należy użyć globalnej oświadczenie.

Globalny wyraz varname mówi Python, varname jest zmienną globalną, więc Python nie znajdzie tej zmiennej w lokalnej przestrzeni nazw.

Na przykład, możemy zdefiniować zmienną pieniądze w globalnej przestrzeni nazw. Następnie w funkcji przypisanej do zmiennej pieniądze, to Python przyjmie, że pieniądz jest zmienna lokalna. Jednak nie zadeklarować zmienną lokalną przed uzyskaniem dostępu do pieniędzy, rezultatem jest to, że nie będzie UnboundLocalError błędem. Anulowanie globalne komentarze rachunku może rozwiązać ten problem.

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


reż function ()

Funkcja dir () to lista ciągów row dobrą sekwencję, treść jest modułem zdefiniowana nazwa.

Zwraca listę wszystkich modułów przyjmowania, zmiennych i funkcji zdefiniowanych w module. Prostym przykładem jest, co następuje:

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

Przykłady wyżej wyjścia:

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

Tutaj specjalny ciąg zmiennej __name__ nazwa punktu modułu, __ punkt FILE__ importować nazwę pliku modułu.



globals () i mieszkańców () funkcja

W zależności od połączenia lokalne, globals () i mieszkańców () może być używany do powrotu globalnej i lokalnej przestrzeni nazw.

Jeśli zadzwonisz do mieszkańców wewnątrz funkcji (), zwroty mogą uzyskać dostęp do wszystkich funkcji w nazwie.

Jeśli zadzwonisz globalnych () wewnątrz funkcji zwraca wszystkie nazwy funkcji w globalnym dostępu do energii.

Obie funkcje zwracają typ jest słownik. Więc nazwa używamy przycisków () usuwanie funkcji.



Odśwież function ()

Gdy moduł jest wprowadzany do modułu skrypt górnej części kodu jest wykonywane tylko jeden raz.

Tak więc, jeśli chcesz, aby ponownie uruchomić moduł w górnej części kodu, można użyć funkcji reload (). Ta funkcja zostanie ponownie przywiezione przed importowanego modułu. Składnia jest następująca:

reload(module_name)

Tutaj module_name nazwa modułu mają być umieszczane bezpośrednio, zamiast napisu. Na przykład, chcesz zastąpić moduł Witam, co następuje:

reload(hello)


Pakiety Python

Pakiet jest hierarchiczna struktura katalogów, które definiuje pakiet dziecka przez moduły i sub-pakietów i podpakietów w ramach innych składników środowiska aplikacji w Pythonie.

Rozważmy plik pots.py w książce telefonicznej. Plik ten ma następujący kod źródłowy:

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

Podobnie, mamy dwie różne funkcje, aby zapisać plik:

  • Telefon / Isdn.py zawierający funkcję ISDN ()
  • Telefon / G3.py zawierający funkcję G3 ()

Teraz należy utworzyć plik __init__.py Telefony katalogu:

  • Telefon / __ init__.py

Podczas importowania telefon, aby móc korzystać ze wszystkich funkcji musisz używać e wyraźne instrukcje importu w __init__.py lat, co następuje:

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

Po dodaniu kodu do __init__.py, importowaną pakiet telefonu, gdy te zajęcia są dostępne w Internecie.

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

Przykłady wyżej wyjścia:

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

Jak, na przykład, mamy tylko jedną funkcję w każdym pliku, ale w rzeczywistości można umieścić wiele funkcji. Można również zdefiniować klasę Pythona w tych plikach, a następnie zbudować pakiet dla tych klas.