class Operation(object):

    def __init__(self, op, arg1, arg2):
        self.op = op
self.arg1 = arg1
self.arg2 = arg2


class Integer(object):

    def __init__(self, num):
        self.num = num


class Float(object):

    def __init__(self, num):
        self.num = num
expression = Operation('+', Integer('5'), Operation('*', Integer('2'),
    Float('444.1')))
Как написать шаблон посетителя для абстрактного синтаксического дерева в Python?