2012-04-14 65 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)) 

未來在哪裏僅僅是遍歷到樹的下一個節點的功能的功能,並且DIFF是以下形式的遞歸函數:

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

你的書寫方式有什麼問題? – 2012-04-14 02:37:18

+0

它是固定的,語法錯誤是拋出一個奇怪的錯誤信息。謝謝! – gfppaste 2012-04-14 02:43:14

回答

1

Python是沒有類型的,所以如果調用增量:

mult(newEquation, node) 

這應該只是罰款。

相關問題