Skip to content

Instantly share code, notes, and snippets.

@geekKeen
Created November 2, 2017 03:51
Show Gist options
  • Save geekKeen/24e238eedfddc3d2cf28feb7d99bea9c to your computer and use it in GitHub Desktop.
Save geekKeen/24e238eedfddc3d2cf28feb7d99bea9c to your computer and use it in GitHub Desktop.
Recursion 的常用写法
def get_labels(model, *filter_options):
unnest_lables = db.session.query(func.unnest(getattr(model, 'labels'))).filter(*filter_options)
labels = set()
def _walk(iterable):
for item in iterable:
if isinstance(item, tuple):
_walk(item)
else:
labels.add(item)
_walk(unnest_lables)
return list(labels)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment