Автор: Ангелина
Дата публикации: 2013-12-14T11:48:00.001+02:00
Архив автора: admin
Цветы крючком- Роза спиральная
Цветы крючком — Хризантема
Python использование set с классом
Задача: создадим класс, создадим пустой set. Заполним set экземплярами созданного класса. Для примера пусть экземпляры будут случайным целым числом из диапазона 0-9. Теперь мы хотим удалить из set-а все экземпляры класса значения которых совпадают с «9» и «8»
Где это можно применить на практике? В gamedeveloping игра «Астероид», в set добавляем все летающие по экрану камни, пробегаемся по set-у и сверяем дистанцию между кораблем и камнями:
для этого вычисляем дистанцию между координатами центров фигур
>>> def dist(p, q):
>>> return math.sqrt((p[0] — q[0]) ** 2 + (p[1] — q[1]) ** 2)
и вычитаем радиус корабля и радиус камня, если получившееся значение <= 0 значит столкновение, то добавляем экземпляр класса камень во временный set. После окончания обхода set-а с камнями - удаляем из этого set-а временный set (один или более камней при столкновении) и уменьшаем счетчик жизней кораблю.
>>> import random
>>> class A:
>>> def __init__(self, a):
>>> self.a = a
>>> def __str__(self):
>>> return («%s») % self.a
>>> st = set()
>>> for i in range(10):
>>> st.add(A(random.randrange(0, 10)))
>>> print [str(x) for x in st]
['6', '5', '3', '8', '4', '9', '2', '9', '9', '8']
>>> temp = set()
>>> for x in st:
>>> if str(x) == '9' or str(x) == '8':
>>> temp.add(x)
>>> print [str(x) for x in temp]
['8', '9', '9', '9', '8']
>>> st.difference_update(temp)
>>> print [str(x) for x in st]
['6', '5', '3', '4', '2']
Автор: Viktor

Как сделать браслет с подковками на удачу
Смастерить любое украшение, это не так сложно, как кажется на первый взгляд. Общее время для изготовления не превысит часа. Если вы всерьез решили заняться изготовлением бижутерии, то заранее запаситесь необходимыми материалами и инструментом. Наверняка вы знаете, где находится ближайший магазин фурнитуры. Если такового нет в вашем городе, – в интернете много магазинов, предлагающих различные мелочи для рукоделия. А браслет с подковами своими руками станет прекрасным дополнением к новогоднему наряду.
Подчеркнутая защищенность
Инкапсуляция — одна из основ ООП. Мы договариваемся использовать только часть функциональности класса, а взамен получаем возможность работать с самыми разными типами, даже с теми, которые будут написаны после окончания работы над текущим кодом.
Компилируемые языки реализуют инкапсуляцию методом принуждения. Программист отмечает методы и поля как личные или защищенные, а компилятор играет в большого брата и проверяет что все используется в корректном контексте. На моей памяти война за способ использования private/protected минимум пару раз принимала нешуточный оборот. Читать
.jpg)


