您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

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

def f(lst = []):
    lst.append(1)
    return lst

print(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
python 2022/1/1 18:39:26 有373人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶