категории | RSS

Продолжаю небольшие зарисовки на заданную тему.
На этот раз напишем небольшой класс, наследующий от типа "список", инстансы которого будут тоже списками, но с одним отличием.
class List(list):

"""
Класс предоставляет возможности python-типа "список",
к которым добавлена поддержка оператора инвертирования "~":
x = List((1, '2', [3])) # или List(1, '2', [3])
~ x -> [[3], '2', 1] == (x.reverse() or x)
"""

def __init__(self, *item):
if len(item) > 1:
self.extend(item)
else:
self.extend([i for i in item[0]])

def __invert__(self):
self.reverse()
return self

lst = List((1, 2, 3, 4))
lst1 = List(1, 2, 3, 4)
lst2 = list((1, 2, 3, 4))
lst3 = [1, 2, 3, 4]

print lst == lst1 == lst2 == lst3

print 'lst = %(lst)r\nlst1 = %(lst1)r\nlst1 = %(lst2)r\nlst1 = %(lst3)r' % vars()

Virtuos86
2010-05-26T20:34:05Z

Здесь находятся
всего 0. За сутки здесь было 0 человек
Яндекс.Метрика