amarao (amarao_san) wrote,
amarao
amarao_san

и ещё чуть-чуть питона

class History:
    def __init__(self,depth):
        self.depth=depth
        self.history=[]
        self.basetype=None

    def push(self,new_value):
        if self.basetype:
            if not type (new_value) is self.basetype:
                raise Exception("Different types in single history are not allowed")
        else:
            self.basetype=type(new_value)
        if len(self.history)>=self.depth:
            self.history.__delitem__(0)
        self.history.append(new_value)
    def __str__(self):
        return str(self.history)


Планируется иметь тут History.average (возвращает объект типа self.basetype, но внутри которого для каждого составного элемента basetype сделан average по всем элементам в self.history), History.median и т.д.

Пока что это такой скромненький хронологический барабан заданнйо глубины в стиле rrd (без огрубляющих барабанов), то есть:
a=History(3)
a.push(1)
a.push(2)
a.push(3)
a
[1,2,3]
a.push(4)
a
[2,3,4]
Tags: blktop, programming, python
Subscribe

  • equart'овское - поиск в дереве

    Ещё одна интересная проблема, точнее оптимизация, которую я сейчас осознал, связана с нахождением точек в регионе. В общем случае основное 'read'…

  • бездны интроспекции

    Я только что узнал, что если класс наследует функцию, которая смотрит на __file__, то этот __file__ будет содержать путь к файлу, где функция…

  • типизация в питоне такая типизация...

    PEP 484 -- Type Hints The official home of the Python Programming Language www.python.org Если у вас рекурсивный тип, то у нас есть специальный…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments