使用self.xxxx作为默认参数-Python

使用self.xxxx作为默认参数-Python,第1张

使用self.xxxx作为默认参数-Python

拉尔斯曼人回答了您的第一个问题

它不起作用,因为默认参数是在函数定义时而不是在调用时求值的:

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5642659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存