python 递归函数_使用递归函数时处理python全局变量

我制作了一个从

HTML文件中提取文本的程序.它递归HTML文档并返回标记列表.例如,

输入< li>没有办法< b>你< / b>这样做< / li>

输出[‘不’,’方式’,’你’,’是’…].

这是一个高度简化的伪代码:

def get_leaves(node):

kids=getchildren(node)

for i in kids:

if leafnode(i):

get_leaves(i)

else:

a=process_leaf(i)

list_of_leaves.append(a)

def calling_fn():

list_of_leaves=[] #which is now in global scope

get_leaves(rootnode)

print list_of_leaves

我现在在调用函数的全局范围内使用list_of_leaves. calling_fn()声明了这个变量,get_leaves()追加到这个变量.

我的问题是,如何修改我的函数,以便我能够执行类似list_of_leaves = get_leaves(rootnode)的操作,即不使用全局变量?

我不希望函数的每个实例都复制列表,因为列表可能会变得非常大.

请不要批评这个特定伪代码的设计,因为我简化了这一点.它用于另一个目的:使用BeautifulSoup提取令牌以及相关标签

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值