Функции для доступа к внутренним структурам 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Функции для доступа к внутренним структурам

Поиск

Функции для доступа к внутренним структурам

 

В современной реализации языкаPythonглобальные и локальные переменные доступны в виде словаря благодаря функциям globals() и locals().Правда,записывать что-либо в эти словари не рекомендуется.

 

Функция vars() возвращает таблицу локальных имен некоторого объекта(если параметр не задан,она возвращает то же,что и locals()).Обычно используется в качестве словаря для операции форматирования:

 

a = 1


 


b = 2 c = 3

 

print "%(a)s + %(b)s = %(c)s" % vars()

 

Функции компиляции и исполнения

 

Функция reload() уже рассматривалась,а из остальных функций этой категории особого внимания заслуживает eval().Как следует из названия,эта функция вычисляет переданное ей выражение.В примере ниже вычисляется выражение,которое строится динамически:

 

a = 2 b = 3

for op in "+-*/%":

 

e = "a " + op + " b" print e, "->", eval(e)

 

У функции eval() кроме подлежащего вычислению выражения есть еще два параметра-с

 

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

 

for op in "+-*/%":

 

e = "a " + op + " b"

print e, "->", eval(e, {'a': 2, 'b': 3})

 

Функцией eval() легко злоупотребить.Нужно стараться использовать ее только тогда,когда без нее не обойтись.Из соображений безопасности не следует применять eval() для аргумента,в котором присутствует непроверенный ввод от пользователя.

 

Функции ввода-вывода

 

Функции input() и raw_input() используются для ввода со стандартного ввода.В серьезных программах их лучше не применять.Функция open() служит для открытия файла по имени для чтения,записи или изменения.В следующем примере файл открывается для чтения:

 

f = open("file.txt", "r", 1) for line in f:



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 63; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.01 с.)