Я сделал программу, которая извлекает текст из файла HTML. Он рекурсивно просматривает HTML-документ и возвращает список тегов. Например,
input никоим образом вы не делаете это
output ['no', 'way', 'you', 'are' ...] .
Вот очень упрощенный псевдокод для этого:
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 в глобальной области видимости из вызывающей функции. Вызывающая_fn () объявляет эту переменную, к ней добавляется get_leaves ().
Мой вопрос , как мне изменить мою функцию, чтобы я мог делать что-то вроде list_of_leaves = get_leaves (rootnode), то есть без использования глобальной переменной?
Я не хочу, чтобы каждый экземпляр функции дублировал список, поскольку список может быть довольно большим.
Пожалуйста, не критикуйте дизайн этого конкретного псевдокода, так как я упростил это. Он предназначен для другой цели: извлечение токенов вместе со связанными тегами с помощью BeautifulSoup