我是Python的新手,我對shutil模塊中下面提到的代碼片段的工作有些疑問。從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
何時shutil.copytree
呼叫與ignore
選項設置爲ignore_patterns
發,然後調用ignore_patterns
功能和返回功能。我的疑惑是:
1)ignore_patterns
當被調用時會返回_ignore_pattern
函數的引用。現在,當這個函數被調用時,它如何訪問「模式」列表?一旦被調用的函數「ignore_patterns」已經返回,那麼在其調用中創建的列表模式應該只能用於其被調用的作用域。
2)返回函數_ignore_patterns
函數名稱中下劃線的含義是什麼?