Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Исключения

Читайте также:
  1. Exceptions (исключения)
  2. Взаимоисключения
  3. Для других мы создаем правила, для себя — исключения».
  4. Захват исключения
  5. Индукция методом исключения
  6. Исключения в порядке обработки по умолчанию
  7. Конкуренция. Закон конкурентного исключения Г.Ф.Гаузе. Концепция экологической ниши.
  8. Метод последовательного исключения неизвестных (метод Гаусса).
  9. Обе составляющие - двойная запись и оценка в единой валюте всех без исключения объектов - действуют в единстве, одна без другой выполнять соответствующие функции не может.

При возникновении ошибки в программе возбуждается исключение и выводится трассировочная информация, такая, как показано ниже:

Трассировочная информация позволяет определить тип ошибки и место, где она возникла. Обычно ошибки приводят к аварийному завершению программы. Однако имеется возможность перехватить и обработать исключение – с помощью инструкций try и except, как показано ниже:

try:

f = open(“file.txt”,”r”)

except IOError as e:

print e

Если будет возбуждено исключение IOError, информация о причинах появления ошибки будет записана в переменную e и управление будет передано первой инструкции в блоке except. Если возникнет какое-то другое исключение, оно будет передано объемлющему блоку кода (если таковой имеется). Если операция выполнена без ошибок, инструкции в блоке except будут просто игнорироваться. После обработки исключения выполнение программы продолжится с первой инструкции, следующей за последней инструкцией в блоке except. Программа не возвращается в то место, где возникло исключение.

Возбудить исключение вручную можно с помощью инструкции raise. Для этого инструкции raise можно передать один из встроенных классов исключений, например:

 

raise RuntimeError("Компьютер говорит нет")

 

 

Модули

Часто по мере роста программы возникает желание разбить ее на несколько файлов, чтобы упростить ее разработку и дальнейшее сопровождение. Язык Python позволяет помещать определения в файлы и использовать их как модули, которые могут импортироваться другими программами и сценариями. Чтобы создать модуль, необходимо поместить соответствующие инструкции и определения в файл с тем же именем, которое будет присвоено модулю. (Обратите внимание, что имя файла должно иметь расширение.py.) Например:

# файл: div.py

def divide(a, b):

q = a/b

# Если a и b – целые числа, q будет целым числом

r = a - q*b

return (q, r)

Использовать модуль в других программах можно с помощью инструкции import:

import div

a, b = div.divide(2305, 29)

Инструкция import создает новое пространство имен и внутри этого пространства имен выполняет все инструкции, находящиеся в файле с расширением.py. Чтобы получить доступ к содержимому этого пространства имен после импортирования, достаточно просто использовать имя модуля в качестве префикса, как это сделано в вызове функции div.divide() в преды дущем примере.

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

import div as foo

a,b = foo.divide(2305,29)

Чтобы импортировать некоторые определения в текущее пространство имен, можно воспользоваться инструкцией from:

from div import divide

a,b = divide(2305,29) # Префикс div больше не нужен

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

from div import *

 

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

>>> import string

>>> dir(string)

[‘__builtins__’, ‘__doc__’, ‘__file__’, ‘__name__’, ‘_idmap’, ‘_idmapL’, ‘_lower’, ‘_swapcase’, ‘_upper’, ‘atof’, ‘atof_error’, ‘atoi’, ‘atoi_error’, ‘atol’, ‘atol_error’, ‘capitalize’, ‘capwords’, ‘center’, ‘count’, ‘digits’, ‘expandtabs’, ‘find’,

...

>>>

 




Дата добавления: 2014-12-15; просмотров: 119 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (4.919 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав