Latest web development tutorials

Модули Python

Модуль позволяет логически организовать код Python.

Присвоение соответствующего кода в модуль, чтобы облегчить ваш код в использовании, более понятной.

Модули Python являются объектами со случайным именем атрибута используется для связывания или ссылки.

Проще говоря, модуль является Python код для сохранения файла. Модули могут определить функции, классы и переменные. Модуль может содержать исполняемый код.

пример

Вызывается модуль aname в коде Python вообще можно найти в файле под названием aname.py. Следующий пример представляет собой простой модуль support.py.

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


Оператор импорта

Хотите использовать исходный файл Python, просто выполнить другой оператор импорта в исходном файле, синтаксис выглядит следующим образом:

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

Когда интерпретатор встречает оператор импорта, если модуль будет импортирован в текущем пути поиска.

Путь поиска является переводчиком сначала будет искать список всех каталогов. Как вы хотите импортировать модуль support.py, необходимо поместить команду в верхней части сценария:

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

Примеры вышеуказанного вывода:

Hello : Zara

Модуль будет импортировать только один раз, независимо от того, сколько раз вы выполняете импорт. Это предотвращает модуль импорта выполняется снова и снова.



От ... импорта заявления

Python позволяет импортировать заявления от определенной части из модуля в текущем пространстве имен. Синтаксис выглядит следующим образом:

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

Например, чтобы импортировать функцию модуля Фибо Фибоначчи, используйте следующее заявление:

from fib import fibonacci

Это утверждение не приврать весь модуль в текущем пространстве имен, то это будет только Фибо Lane Fibonacci введена в единую глобальную реализацию таблицы символов этой декларации модуля.



От ... импорт * заявление

Все содержимое модуля все в текущем пространстве имен можно просто использовать следующее заявление:

from modname import *

Это обеспечивает легкий способ импортировать модуль во всех проектах. Однако это утверждение не должно быть слишком много, чтобы использовать.



модуль позиционирования

При импорте модуля, Python анализатор модуль позиции Порядок поиска:

  • Текущий каталог
  • Если не в текущем каталоге, Python будет искать каждый каталог в переменной оболочки PYTHONPATH.
  • Если вы не можете найти, Python будет смотреть на пути по умолчанию. Под UNIX, путь по умолчанию, как правило, / USR / местные / Библиотека / Python /.

Модуль поиска пути хранится в sys.path переменных модулей системы. Переменная содержит текущий каталог, PYTHONPATH и каталог установки по умолчанию, в процессе принятия решений.



переменная PYTHONPATH

В качестве переменной окружения PYTHONPATH с помощью установленного в списке многих каталогов. PYTHONPATH оболочки переменной PATH синтаксис и то же.

В системах Windows, типичная PYTHONPATH следующим образом:

set PYTHONPATH=c:\python20\lib;

В системах UNIX, типичный PYTHONPATH следующим образом:

set PYTHONPATH=/usr/local/lib/python


Пространства имен и области применения

Переменная является именем объекта имеет соответствия (идентификатор). Пространство имен является переменной, которая содержит имя их (ключа) и их соответствующие объекты (значение) словарей.

Выражение Python может получить доступ к местной и глобальной переменной пространства имен пространства имен. Если локальная переменная с тем же именем, что и глобальная переменная, локальная переменная будет переопределить глобальную переменную.

Каждая функция имеет свое собственное пространство имен. Сфера применения правил, как методы класса и функции, которые обычно.

Python разумно угадать переменная является локальной или глобальной, то предполагается, что любая переменная внутри функции присваивания является локальным.

Поэтому, если вы даете глобальной переменной назначения в функции, вы должны использовать глобальное заявление.

глобальное выражение VarName говорит Python, VarName является глобальной переменной, так что Python не находит эту переменную в локальном пространстве имен.

Например, мы определяем переменную деньги в глобальном пространстве имен. Затем в рамках функции, присвоенного переменной денег, то Python будет считать, что деньги является локальной переменной. Тем не менее, мы не объявить локальную переменную перед обращением денег, в результате чего будет UnboundLocalError ошибка. Отказ от брони глобальных комментариев оператор может решить эту проблему.

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


Функция реж ()

Функция реж () представляет собой список строк грести хорошую последовательность, содержание представляет собой модуль определенное имя.

Возвращает список всех модулей для размещения, переменных и функций, определенных в модуле. Простой пример выглядит следующим образом:

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

Примеры вышеуказанного вывода:

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

Здесь специальная строка переменной __name__ имя точки модуля, __ точка FILE__ Импортировать имя файла модуля.



глобалы () и местные () функция

В зависимости от местных звонков, глобалы () и местных () функция может быть использована для возврата глобальное и локальное имя пространства имен.

Если вы звоните с местными жителями внутри функции (), возвращает может получить доступ ко всем функциям в названии.

Если вы звоните глобалы () внутри функции возвращает все имена функций в глобальном доступа к источникам энергии.

Обе функции возвращают тип словаря. Таким образом, название мы используем клавиши () удаление функции.



Функция Reload ()

Когда модуль вводится в модуль сценария верхней части кода выполняется только один раз.

Так что, если вы хотите повторно выполнить модуль в верхней части кода, вы можете использовать функцию Reload (). Эта функция будет реимпортируются перед импортируемого модуля. Синтаксис выглядит следующим образом:

reload(module_name)

Здесь module_name имя модуля для размещения непосредственно, вместо строки. Например, вы хотите, чтобы переопределить модуль Привет, следующим образом:

reload(hello)


Python пакеты

Пакет представляет собой иерархическую структуру каталогов, которая определяет дочернего пакета модулями и суб-пакетов и подпакетов в соответствии с другими компонентами среды приложений Python.

Рассмотрим файл pots.py в телефонном справочнике. Этот файл имеет следующий исходный код:

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

Кроме того, у нас есть две различные функции, чтобы сохранить файл:

  • Телефон / Isdn.py, содержащий функцию Isdn ()
  • Телефон / G3.py, содержащий функцию G3 ()

Теперь, создайте файл __init__.py в телефонный справочник:

  • Телефон / __ init__.py

При импорте телефона, чтобы иметь возможность использовать все функции, которые вы должны использовать явные операторы импорта в __init__.py лет, следующим образом:

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

Когда вы добавляете код __init__.py, импортный пакет телефона, когда эти классы все имеющиеся на.

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

Примеры вышеуказанного вывода:

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

Как, например, мы имеем только одну функцию в каждом файле, но на самом деле вы можете поместить много функций. Кроме того, можно определить класс Python в этих файлах, а затем построить пакет для этих классов.