Добрый день. Я сейчас прохожу курс повышения квалификации - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?
|
Основные стандартные модули Python
Функции определения свойств
Эти функции обеспечивают доступ к некоторым встроенным атрибутам объектов и другим свойствам. Следующий пример показывает некоторые из этих функций:
>>> s = "abcde" >>> s1 = "abcde" >>> s2 = "ab" + "cde" >>> print "hash:", hash(s), hash(s1), hash(s2) hash: -1332677140 -1332677140 -1332677140 >>> print "id:", id(s), id(s1), id(s2) id: 1076618592 1076618592 1076618656
Здесь, можно увидеть, что для одного и того же строкового литерала "abcde" получается один и тот же объект, тогда как для одинаковых по значению объектов вполне можно получить разные объекты.
Функции для доступа к внутренним структурам
В современной реализации языка 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: . . . f.close()
Функция принимает три аргумента: имя файла (путь к файлу), режим открытия (" r " - чтение, " w " - запись, " a " - добавление или " w+ ", " a+ ", " r+ " - изменение. Также может прибавляться " t ", что обозначает текстовый файл. Это имеет значение только на платформе Windows). Третий аргумент указывает режим буферизации: 0 - без буферизации, 1 - построчная буферизация, больше 1 - буфер указанного размера в байтах.
В новых версиях Python функция open() является синонимом для file().
Функции для работы с атрибутами
У объектов в языке Python могут быть атрибуты (в терминологии языка C++ - члены-данные и члены-функции). Следующие две программы эквивалентны:
# первая программа: class A: pass a = A() a.attr = 1 try: print a.attr except: print None del a.attr # вторая программа: class A: pass a = A() setattr(a, 'attr', 1) if hasattr(a, 'attr'): print getattr(a, 'attr') else: print None delattr(a, 'attr')
Функции-"украшатели" методов классов
Эти функции будут рассмотрены в лекции, посвященной ООП.