0

だから私は次のことをしています:

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))

ここで、nextはツリー内の次のノードに移動する関数であり、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()ツリーノードをパラメーターとして受け入れるdef関数を記述してから、diff()関数を再度呼び出すにはどうすればよいですか?

4

1 に答える 1

1

Pythonは型指定されていないため、multを次のように呼び出すと次のようになります。

mult(newEquation, node)

それはうまくいくはずです。

于 2012-04-14T02:45:31.143 に答える