2012-04-14 2 views
0

Так у меня есть следующие:Функция Python, принимающая объект в качестве параметра?

class Tree(object): 
    def__init__(self): 
     self.right = None 
     self.left = None 
     self.val = None 

я заполнить дерево с вещами в моем коде.

Я хотел бы написать функцию вида

def mult(newVal, node) 
    newVal = diff(node.left, newVal, var) 
    newVal.append('*') 
    newval.append(next(node.right)) 
    newVal.append('+') 
    newVal = diff(node.left, newVal, var) 
    newVal.append('*') 
    newVal.append(next(node.left)) 

Где рядом есть просто функция, которая проходит к следующему узлу в дереве, и дифф рекурсивная функция следующего вида:

def diff(node, newVal, var): 
... 
... 
    elif(node.val == '*'): 
     newVal = diff(node.left, newVal, var) 
     newVal.append('*') 
     newval.append(next(node.right)) 
     newVal.append('+') 
     newVal = diff(node.left, newVal, var) 
     newVal.append('*') 
     newVal.append(next(node.left)) 
... 
... 

и мой "главный" является

node = Tree() 
    newEquation = [] 
    pos = 0 
    pos, newTree = buildTree(node, equation, pos) 
    newEquation = diff(newTree, newEquation, variable) 
    newEquation = ''.join(newEquation) 
    print newEquation 

Как бы написать ДЕФ mult() функция принимает узел дерева в качестве параметра, а затем снова вызывает функцию diff()?

+0

Что случилось с тем, как вы его написали? –

+0

исправлено, синтаксическая ошибка вызывала странное сообщение об ошибке. Благодаря! – gfppaste

ответ

1

Python не набирается, так что, если вы звоните Mult с:

mult(newEquation, node) 

Это должно работать нормально.

Смежные вопросы