Разделы инструкций

В сети

Пользователей: 131
Из них просматривают:
Аналоги: 45. Видео: 2. Даташиты: 22. Инструкции: 9. Новости: 22. Остальное: 5. Производители: 3. Расчёты: 1. Теги: 1. Торрент: 2. Форум: 16. Чат: 3.
Участников: 5
Гостей: 126

an , alex01981 , Google , wolf170571 , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

Оглавление

6.1. Создание и использование модулей

Модуль — файл, содержащий определения и другие инструкции языка Python. Имя файла образуется путем добавления к имени модуля суффикса (расширения) '.py'. В пределах модуля, его имя доступно в глобальной переменной __name__. Например, используя Ваш любимый текстовый редактор, создайте в текущем каталоге файл с именем 'fibo.py' следующего содержания1:

 

'''\
Genegaciia i vivod chisel Fibonachi
'''

def fib(n):
    '''Vivodit posledovatelnost chisel Fibonachi, ne previshayshix n'''
    a, b = 0, 1
    while b < n:
        print b,
        a, b = b, a + b

def fib2(n):
    '''Vozvrashaet spisok, sodergashiy chisla riada Fibonachi, ne previshayshix n'''
    result = []
    a, b = 0, 1
    while b < n:
        result.append(b)
        a, b = b, a + b
    return result

 

Теперь запустите интерпретатор и импортируйте только что созданный модуль:

 

>>> import fibo

 

Эта инструкция не вводит имена функций, определенных в fibo прямо в текущее пространство имён, она только вводит имя модуля fibo. Используя имя модуля, Вы можете получить доступ к функциям:

 

>>> fibo.fib(1000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>> fibo.fib2(100)
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> fibo.__name__
'fibo'

 

Если Вы собираетесь использовать функцию часто, можете присвоить ее локальной переменной:

 

>>> fib = fibo.fib
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377

 

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

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

Модули могут импортировать другие модули. Обычно инструкцию import располагают в начале модуля или программы. Имена импортируемых модулей помещаются в текущее пространство имен импортирующего модуля или программы.

Другой вариант инструкции import импортирует имена из модуля непосредственно в текущее пространство имен:

 

>>> from fibo import fib, fib2
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377

 

В этом случае имя модуля не будет представлено в текущей области видимости (в приведённом примере, имя fibo не определено).

Еще один вариант инструкции import позволяет импортировать все имена, определённые в модуле, кроме имён, начинающихся с символа подчеркивания ('_'):

 

>>> from fibo import *
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377

 

Часто возникает необходимость импортировать модуль или объект модуля, используя для него локальное имя, отличное от исходного. Например, следующий код позволяет заменить имя string на _string (которое не будет импортироваться инструкцией 'from my_module import *') при написании модуля:

 

import string
_string = string
del string

 

Ещё один пример показывает, как можно избежать конфликта имёни, определенного в модуле, со встроенным именем:

 

import anydbm
dbopen = anydbm.open

 

Начиная с версии 2.0, подобные операции можно произвести гораздо проще (и безопаснее) благодаря расширению синтаксиса инструкции import:

 

import string as _string

from anydbm import open as dbopen

 

Следует заметить, что as не является зарезервированным словом, и Вы можете по-прежнему определять переменные с таким именем.

Если имя модуля, который необходимо импортировать, становится известным только во время выполнения программы, Вы можете воспользоваться инструкцией exec ("exec 'import ' + module_name") или встроенной функцией __import__() (см. раздел 12).

 

Скачать файл fibo.py

Примечания:
  • Исходный код файла прикреплён в конце раздела.
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Разное

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

Интересно

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

Похожие инструкции