晋升Python措施机能的7个风俗
把握一些能力,可只管进步Python措施机能,也可以停止不须要的资源挥霍。 1、行使局部变量 只管行使局部变量取代全局变量:便于维护,进步机能并节减内存。 行使局部变量替代模块名字空间中的变量,譬喻 ls = os.linesep。一方面可以进步措施机能,局部变量查找速率更快;另一方面可用简短标识符更换冗长的模块变量,进步可读性。 2、镌汰函数挪用次数 工具范例判定时,回收isinstance()最优,回收工具范例身份(id())次之,回收工具值(type())较量最次。
不要在一再操纵的内容作为参数放到轮回前提中,停止一再运算。
如需行使模块X中的某个函数或工具Y,应直接行使from X import Y,而不是import X; X.Y。这样在行使Y时,可以镌汰一次查询(表明器不必起首查找到X模块,然后在X模块的字典中查找Y)。 3、回收映射更换前提查找 映射(好比dict等)的搜刮速率远快于前提语句(如if等)。Python中也没有select-case语句。
4、直接迭代序列元素 对序列(str、list、tuple等),直接迭代序列元素,比迭代元素的索引速率要更快。
5、回收天生器表达式更换列表理会 列表理会(list comprehension),会发生整个列表,对大量数据的迭代会发生负面效应。 而天生器表达式则不会,其不会真正建设列表,而是返回一个天生器,在必要时发生一个值(耽误计较),对内存越发友爱。
6、先编译后挪用 行使eval()、exec()函数执行代码时,最好挪用代码工具(提前通过compile()函数编译成字节码),而不是直接挪用str,可以停止多次执行一再编译进程,进步措施机能。 正则表达式模式匹配也相同,也最好先将正则表达式模式编译成regex工具(通过re.complie()函数),然后再执行较量和匹配。 7、模块编程风俗 模块中的第一流别Python语句(没有缩进的代码)会在模块导入(import)时执行(岂论其是否真的须要执行)。因此,应只管将模块全部的成果代码放到函数中,包罗主措施相干的成果代码也可放到main()函数中,主措施自己挪用main()函数。 可以在模块的main()函数中誊写测试代码。在主措施中,检测name的值,假如为'main'(暗示模块是被直接执行),则挪用main()函数,举办测试;假如为模块名字(暗示模块是被挪用),则不举办测试。 【责任编辑:庞桂玉 TEL:(010)68476606】点赞 0 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |