Архив автора: admin

Метаклассы в python 2.X с примерами и полным разоблачением

Теория, часть 1. Метаклассы

Все начинается с объявления класса:

Hightlited/Raw

class A(object):
field = 12
def method(self, param):
return param + self.field

class A(object):
field = 12
def method(self, param):
return param + self.field

Имеющие опыт программирования на компилируемых языках могут увидеть здесь декларативную конструкцию, но это только обман зрения. В python всего две декларативные конструкции — объявление кодировки файла и импорт синтаксических конструкций «из будущего». Все остальное — исполняемое. Написанное объявление это синтаксический сахар для следующего:

Hightlited/Raw

txt_code = """
field = 12
def method(self, param):
return param + self.field
"""

class_body = {}
compiled_code = compile(txt_code, __file__, "exec")
eval(compiled_code, globals(), class_body)
A = type("A", (object,), class_body)

txt_code = """
field = 12
def method(self, param):
return param + self.field
"""

class_body = {}
compiled_code = compile(txt_code, __file__, "exec")
eval(compiled_code, globals(), class_body)
A = type("A", (object,), class_body)

Оба этих способа создать класс A совершенно эквивалентны. Окончательно убедиться в том, что объявление класса исполнимо можно посмотрев вот на это:

Hightlited/Raw

def this_is_not_cplusplus(some_base_class, num_methods):
class Result(some_base_class):
x = some_base_class()
for pos in range(num_methods):
# добавим функцию в locals - она попадает в тело
# класса Result и станет его методом
locals()['method_' + str(pos)] =
lambda self, m : m + num_methods
return Result

class_with_10_methods = this_is_not_cplusplus(object, 10)
class_with_20_methods = this_is_not_cplusplus(
class_with_10_methods, 20)
print class_with_10_methods().method_3(2) # напечатает 12
print class_with_20_methods().method_13(2) # напечатает 22

def this_is_not_cplusplus(some_base_class, num_methods):
class Result(some_base_class):
x = some_base_class()
for pos in range(num_methods):
# добавим функцию в locals - она попадает в тело
# класса Result и станет его методом
locals()['method_' + str(pos)] =
lambda self, m : m + num_methods
return Result

class_with_10_methods = this_is_not_cplusplus(object, 10)
class_with_20_methods = this_is_not_cplusplus(
class_with_10_methods, 20)
print class_with_10_methods().method_3(2) # напечатает 12
print class_with_20_methods().method_13(2) # напечатает 22

Функция this_is_not_cplusplus создает новый класс каждый раз, когда мы ее вызываем, используя переданный тип в качестве базового и создавая в н

Стильный декор на Хэллоуин

Из бумаги для скрапбукинга можно сделать все, что угодно. Когда осень заволакивает весь пейзаж за окном, хочется лучшие ее мгновения запечатлеть не только в памяти… Предлагаем сделать несложный осенний декор, который придется весьма кстати на Хэллоуин.

Осенний декор

Читать

Небольшой экскурс в мир компьютерных вирусов. Часть 3

Вернемся к небольшому обзору истории вирусоводства.

1996 год. В январе появляется первенец вируса для Windows 95. Вирус Win95 . Boza, а вирус Win95 . Punch, сделанный чуть позже, окончательно подрывает доверие пользователя к Windows 95.

Март того же года, отмечает начало первой эпидемии вируса Win . Tentacle, разработанного для программы Windows 3 . 0 / 3 . 1 .

До этого вирусы для Windows, хранились в коллекциях и электронных блокнотах вирусописателей, свободно гуляли лишь загрузочные для MS — DOS и макровирусы.

В этот год поймали макровирус Laroux, разработанный для Microsoft Exce l.

1997 год, на свет появляются новые виды вируса – FTP – и mIRC — червь, июнь 1998 года, новый вирус Win95 . CIH (или «Чернобыль»).

Вирус активизировался в 1999 году 26 апреля, уничтожая информацию, хранящуюся на жестком диске, и записывая на него разный мусор. Помимо этого, он перезаписывал и Flash BIOS, при положении переключателя, на разрешение записи, и выводил из строя, системную плату.

Филиппинский червь I love you, запущен в 2000 году в мае месяце, нанесший ущерб владельцам компьютеров превышающий 10 млрд. долларов

Следующий червь Code Red, в течение 14 часов, он заражает более 300 компьютеров Интернета.

После было еще много и других вирусов. К примеру, Nimda, (слово admin, написанное наоборот) это много векторный червь, распространяющийся несколькими способами сразу, не брезгуя и «черными ходами», оставленными другими червями.

Самым быстрым червем, был признан My Doom. Он распространялся по электронной почте.

До этого, большей частью, вирусы были написаны языком низкого уровня – ассемблер, который позволяет создавать, небольшие оптимизированные вирусы.

Червь «Anna Kournikova», поразивший Интернет в феврале 2001 г. стал детищем голландского студента, не умеющем программировать вообще, даже на языке Basic.

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

В 1999 году в среднем фиксировалось один новый вирус в час, в 2000 г. эта цифра уже увеличилась до одной программы на каждые 3 минуты, в 2004 г, это время сокращено до нескольких секунд.

Санкт Петербургская антивирусная лаборатория, только за март месяц 2007 г, в антивирусную базу добавила более 7 тысяч записей.

Игра Darwin продолжает свой ход… К счастью, radartech pilot 11r не может подвергнуться вирусной атаке.

Автор: Сергей Курган

Вегетарианский гамбургер для худеющих

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

Суть в подобном питании никак не съесть более чем необходимо. Старайтесь никак не торопиться, потихоньку прочувствуйте все вкусовые ноты. Чувство сытость должно прийти скорее, чем ваша милость завершит кушать.

Вегетарианский гамбургер готовится из:

  • стакан кукурузы
  • авокадо
  • стакана обезжиренной сметаны
  • ч. л. свежего сока лайма
  • 4 булочки для гамбургеров из цельного зерна и разрезанные на две части.
  • ч.л. сушеной душицы
  • чайной ложки молотого тмина
  • ст. л. оливкового масла, разделенного на 2 части
  • несколько листьев шпината или салата
  • красного болгарского перца, нарезанного кубиками
  • чашки пшеничных сухарей
  • стакана кинзы (нарезанной соломкой)
  • Взбитые белки от 3 яиц (можно исключить для строгого вегетарианства)
  • 220 г (1 банка) черной фасоли, промыть и просушить
Перемешать в чашке фасоль, кукурузу, сладкий паприка, панировочные сухари, кинзу, яичные белки, душицу и слепить четыре котлеты. Разогреть на обычном пламени сковороду с маслом и жарить в ней котлеты вплоть до коричневой корочки, приблизительно пять мин. с каждой стороны. Смешать сметану, лимонный сок и пюре из авокадо. На нижнюю часть булочки положить шпинат, потом смесь с авокадо, потом бобовая котлета, и накрыть второй булочкой.Читайте статью как мы выбирали эффективные таблетки для похудения.

Цветок «Царская корона» из гофрированной бумаги

В последние годы декоративные цветы стали необычайно популярны. Они прекрасно впишутся в любой интерьер при условии, если  аккуратно сделаны и соединены в красивую композицию, подобранную со вкусом. Сделать цветы из гофрированной бумаги сможет каждая рукодельница, если внимательно будет следовать пошаговой инструкции, приведенной ниже. Цветок под названием «Царская корона» — объект сегодняшней статьи.

Цветок из гофрированной бумаги

Читать

Цветок "Царская корона" из гофрированной бумаги

В последние годы декоративные цветы стали необычайно популярны. Они прекрасно впишутся в любой интерьер при условии, если  аккуратно сделаны и соединены в красивую композицию, подобранную со вкусом. Сделать цветы из гофрированной бумаги сможет каждая рукодельница, если внимательно будет следовать пошаговой инструкции, приведенной ниже. Цветок под названием «Царская корона» — объект сегодняшней статьи.

Цветок из гофрированной бумаги

Читать