在Python中使用函数式编程的最佳实践!
可修改的类属性很是伤害,由于它们属于类界说而不是类实例,因此也许会不警惕修改到统一个类的多个实例中的状态!
幂等性 任何现实的大局限伟大体系都也许会失败,而失败就要重试。矩阵代数中的“幂等性”的观念也存在于 API 计划中,但对付函数式编程来说,转达之前的输出给幂等函数,永久会返回沟通的值。因此,重做某件工作会收敛到沟通的值。因此,上述 pluralize 函数更抱负的写法为:,起首搜查输入是否已是复数,再思量奈何计较出复数情势。 lambda 和高阶函数行使上的留意点 我发明,在举办短小的操纵(如获取排序的键供 sort 行使)时行使 lambda 很是利便。但假如 lambda 高出一行,那么行使平凡的函数界说也许更好。凡是转达函数可以停止一再,但我在行使时常常提示本身,特另外布局是否会让代码清楚度降落。凡是,将其解析成更小的帮助函数会更清楚。 在必要时行使天生器和高阶函数 偶然辰你会碰着抽象的天生器和迭代器,它们也许会返回庞大可能无穷的序列。一个例子就是 range。在 Python 3 中,range 默认是天生器(相等于Python 2 中的 xrange),停止在迭代大数字时呈现内存不敷的错误,如range(10 ** 10)。假如要在一个也许很大的天生器的每个元素上执行某个操纵,那么行使 map、filter 之类的器材大噶?鲱好的选择。 与此相似,假如不知道你新写的迭代器也许会返回几多功效,但也许会很大,那就应该界说一个天生器。可是,并不是每小我私人都乐意去行使天生器,他们也许更但愿行使列表理会式(list comprehension),从而导致你一开始想要停止的内存不敷错误。天生器是 Python 对付流式编程的实现,它也不必然是函数式的,以是它也有其他 Python 编程方法拥有的安详性缺陷。 结论 通过赏识成果、库和内部代码来领略本身选择的编程说话,毫无疑问能帮你在调试和阅读代码方面进步速率。领略其他说话或编程说话理论方面的头脑也很故意思,并且能让你成为更强盛、无所不通的措施员。可是,成为Python的高级措施员意味着你不只要知道能做什么,更要领略哪种步崆最有用的方法。在Python中应用函数式编程也许很轻易。为了保持优雅,出格是在共享的代码中保持优雅,我以为最好是行使纯粹的函数式头脑,让代码更轻易猜测,从而更轻易维护,而且具有幂等性。 【责任编辑:庞桂玉 TEL:(010)68476606】点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |