Метаданные в SQLite
Метаданные – это информация о данных в базе данных. Метаданные в SQLite содержат в себе информацию о таблицах и столбцах, в которых мы храним данные. Количество строк под воздействием оператора SQL – это метаданные. Количество строк и столбцов, возвращаемые в результирующий набор, также относятся к метаданным. Метаданные в SQLite могут быть получены с использованием команды PRAGMA. Объекты SQLite могут иметь атрибуты, которые являются метаданными. Наконец, мы также можем достать определённые метаданные от запроса таблицы sqlite_master системы SQLite.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sqlite3 as lite
import sys
con = lite.connect('test.db')
with con:
cur = con.cursor()
cur.execute('PRAGMA table_info(Cars)')
data = cur.fetchall()
for d in data:
print d[0], d[1], d[2]
В этом примере, мы пускаем в обращение команду PRAGMA table_info(tableName), чтобы получить некоторую метаинформацию о нашей таблице Cars.
Вложение декораторов в Python
Иногда одного декоратора бывает недостаточно. Для поддержки многоступенчатых расширений синтаксис декораторов позволяет добавлять несколько уровней обертывающей логики к декорируемой функции или методу. При использовании такой возможности каждый декоратор должен указываться в отдельной строке. Синтаксическая конструкция следующего вида:
@AAA
@BBB
@CCC
def function(...):
...
равноценна следующей:
def f(...):
...
f = AAA(BBB(CCC(f)))
Здесь оригинальная функция передается трем различным декораторам, а получившийся в результате вызываемый объект присваивается оригинальному имени. Каждый декоратор обрабатывает результат, возвращаемый предыдущим декоратором, который может быть оригинальной функцией или объектом-оберткой. Если все декораторы возвращают обертки, то при вызове функции по оригинальному имени будет выполнена логика всех трех обертывающих объектов, расширяя возможности функции тремя различными способами.
Последний декоратор в списке будет задействован первым и окажется самым глубоко вложенным.Далее...
Тестирование программного обеспечения: основные виды
Тестирование программного обеспечения – один из обязательных и крайне важных этапов разработки программного продукта. Задачи специалиста, выполняющего тестирование:
- Своевременное обнаружение возможных ошибок. Перед тем как проект поступит в продажу или будет передан заказчику, необходимо убедиться в полном отсутствии проблем, связанных с работой ПО. Для этого тестировщик выполняет проверку функциональности системы, работает с комбинацией самостоятельных опций, выявляет критические конфликты при исполнении. Только при бесперебойной работе программного обеспечения в рамках документации можно говорить о том, что тестирование прошло успешно.
5 Методов антиотладки, которые защитят ваше программное обеспечение
Публикуя программное обеспечение, мы привыкли писать в лицензионных соглашениях: «Обратная разработка, декомпиляция или дизассемблирование программы запрещено». Но во многих ситуациях подобные слова являются не лучшей защитой и требуется применение технических средств, обеспечивающих предотвращение инвертирования программного обеспечения и позволяющих защитить свои инновации от использования конкурентами.
Альтернативы статическим методам Python
Кроме возможности пометить метод, как специальный, существуют и другие приемы, которые можно попробовать. Если для доступа к атрибутам класса требуется вызывать функции, которые не принимают ссылку на экземпляр, самая простая мысль, которая приходит в голову, сделать метод обычной функцией, а не методом класса.
При таком способе функции не требуется передавать экземпляр класса. Например, следующая версия spam.py действует одинаково в Python 3 и 2.7(правда, в этой версии инструкция print отображает лишние круглые скобки при выполнении под управлением Python 2.7):Далее...
Слоты и обобщенные инструмены в Python
Фактически некоторые экземпляры со слотами вообще могут не иметь атрибут словаря __dict__, что может сделеать некоторые метапрограммы намного более сложными.
Обобщенные инструменты, которые получают списки атрибутов или обращаются к атрибутам, используя имена в виде строк, например, должны использовать более универсальные механизмы, чем атрибут __dict__. К таким механизмам можно отнести встроенные функции getattr, setattr и dir, способные отыскивать атрибуты в обоих хранилищах, __dict__ и __slots__. В некоторых случаях для полноты картины может потребоваться проверить оба источника атрибутов.
Например, экземпляры классов, где используются слоты, обычно не имеют атрибут словаря __dict__ - вместо него пространство для атрибутов в экземпляре выделяется с применением дескрипторов класса.
Только имена, перечисленные в списке __slots__, смогут использоваться как атрибуты экземпляра, однако значения этих атрибутов могут извлекаться и изменяться обычными способами.Далее...
Обработка строк в Python
Для работы со строками Python предоставляет довольно богатые стандартные средства (и еще более богатые инструменты, включенные в состав стандартной библиотеки).
Прежде всего, это оператор кщ1катенации +. Да, он записывается так же, как оператор арифметического сложения! И работает как с самими строками, так и со строковыми значениями, хранящимися в переменных:Далее...
Стандартные библиотеки и сторонние библиотеки Python
Стандартная библиотека состоит из множества модулей, объединенных в пакеты,и поставляется в составе Python. Она включает большое количество функций и классов, выполняющих различные типовые задачи программирования. Там мы можем найти инструменты для сложной обработки строк, объявления новых типов данных, средства для обмена данными по сети, шифрования и дешифрования, работы с файлами, разработки многопоточных приложений и многое другое.
Как импортировать модуль в Python
Любой модуль Python - это вещь в себе, и ни один другой модуль не сможет использовать объявленную в нем сущность, пока не выполнит операцию импорта.
Операция импорта явно указывает, что мы хотим использовать в данном модуле сущность, объявленную в другом модуле. Выполняется она с помощью выражений импорта. Такое выражение содержит оператор подключения модуля import. Имена импортируемых модулей записываются после этого оператора и разделяются запятыми.
При обращении к сущности, объявленной в другом модуле, мы запишем имя этого модуля, поставим точку и уже после нее укажем само имя нужной сущности. То есть напишем ее полное имя.Далее...
Облегчаем инвестирование при помощью Python
Я давно задумываюсь о поиске автоматического способа заработка при помощи программирования. Создание своего собственного робота для торговли на рынке форекс еще в разработке так, что в свободное время искал более доступные проекты, анализ которых можно автоматизировать. Вся суть скрипта является простой анализе доступных площадок для инвестирования и выбор самой оптимальной. По советам программы можно вложить свои деньги в площадки с наименьшим риском.
Что было изначально?
- Свободное время и желание заработать.
- Свободные 70$
- Знания языка программирования Python.