拉尔斯曼人回答了您的第一个问题
它不起作用,因为默认参数是在函数定义时而不是在调用时求值的:
def f(lst = []): lst.append(1) return lstprint(f()) # prints [1]print(f()) # prints [1, 1]
常见的策略是使用None默认参数。如果None是有效值,请使用单例哨兵:
NOTHING = object()def f(arg = NOTHING): if arg is NOTHING: # no argument # etc.
对于第二个问题,您能否在跳转之前简单地看一下以避免递归?
def makeList(self, aNode=None): if aNode is None: aNode = self.root treeaslist = [aNode.data] if aNode.lChild: treeaslist.extend(self.makeList(aNode.lChild)) if aNode.rChild: treeaslist.extend(self.makeList(aNode.rChild)) return treeaslist
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)