加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在Python中调用嵌套函数时的额外括号

发布时间:2020-12-16 23:38:10 所属栏目:Python 来源:网络整理
导读:我正在研究第6章中Mark Pilgrim的Dive Into Python Book的模块,我对这行代码返回[fileList中的f]的getFileInfoClass(f)(f)的确如此. getFileInfo是一个嵌套函数,我想知道什么是重复(f),额外的括号是.我希望有人可以帮助我.这是完整的功能: def listDirector
我正在研究第6章中Mark Pilgrim的Dive Into Python Book的模块,我对这行代码返回[fileList中的f]的getFileInfoClass(f)(f)的确如此. getFileInfo是一个嵌套函数,我想知道什么是重复(f),额外的括号是.我希望有人可以帮助我.这是完整的功能:
def listDirectory(directory,fileExtList):
    "get list of file info objects for files of particular extensions"
    fileList = [os.path.normcase(f) for f in os.listdir(directory)]
    fileList = [os.path.join(directory,f) for f in fileList 
                if os.path.splitext(f)[1] in fileExtList]
    def getFileInfoClass(filename,module=sys.modules[FileInfo.__module__]):
        "get file info class from filename extension"
        subclass = "%sFileInfo" % os.path.splitext(filename)[1].upper()[1:]
        return hasattr(module,subclass) and getattr(module,subclass) or FileInfo
    return [getFileInfoClass(f)(f) for f in fileList]

解决方法

getFileInfoClass返回一个类;然后,类可以自己调用 – 只通过名称调用类就会返回它的实例.快速连续的两对parens只是简写.它是有效的:
file_info_class = getFileInfoClass(f)
file_info_instance = file_info_class(f)

一般来说,这样的两对parens可能是一个值得怀疑的决定,因为它不是很易读,但我认为在这种情况下作者认为这是合理的,因为它允许他或她将所有内容都放在单个列表理解中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读