Je suis un débutant à Python, j'ai quelques doutes sur le travail de l'extrait de code mentionné ci-dessous à partir du module shutil.Renvoyer la fonction de la fonction en Python
def ignore_patterns(*patterns):
"""Function that can be used as copytree() ignore parameter.
Patterns is a sequence of glob-style patterns
that are used to exclude files"""
def _ignore_patterns(path, names):
ignored_names = []
for pattern in patterns:
ignored_names.extend(fnmatch.filter(names, pattern))
return set(ignored_names)
return _ignore_patterns
Lorsqu'un appel à shutil.copytree
est faite avec ignore
option sur ignore_patterns
, il appelle la fonction ignore_patterns
et retourne une fonction. Mes doutes sont:
1) ignore_patterns
lorsqu'il est appelé renverra la référence de fonction _ignore_pattern
. Maintenant, quand cette fonction sera appelée, comment accède-t-elle toujours à la liste "patterns"? Une fois la fonction appelée "ignore_patterns" renvoyée, les modèles de liste créés lors de son appel ne devraient être disponibles que pour sa portée appelée.
2) Quelle est la signification du trait de soulignement dans la fonction retournée _ignore_patterns
nom de la fonction?