我制作了一个从
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提取令牌以及相关标签