分享更有价值
被信任是一种快乐

Python中五大代码异味是什么

文章页正文上

这篇文章主要介绍“Python中五大代码异味是什么”,在日常操作中,相信很多人在Python中五大代码异味是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中五大代码异味是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!可变默认参数在Python中,使用默认参数是一个很常见的操作,你可以设置一个预定值,并在调用时选择更改。这在设置文字、数字或布尔值时很有用,因为有助于避免出现较长的有冗余值的参数列表。但是将可变的值设置为默认参数可能是危险的,并且会导致bug。来看以下示例:相同的函数在每次调用时给出不同的结果。Python中可变默认值的问题是它们只在定义函数时计算一次。每次调用函数时,使用变异值,可能会导致意外的问题,因为跟踪函数调用真的很麻烦。因此,使用None作为默认值,并在函数中分配可变变量是更安全的,因为你不会以可维护性问题结束,只有在确定需要时才使用可变的默认参数。选择 `range` 而不是`enumerate`Python的for循环不是最常用的代码编写方式,但有时也会免费云主机、域名需要到。现在,Python中的for 循环的运行与其他语言不同,你可能会本能地以非惯用的方式编写传统风格的range(len()),如下所示:重复基于C-style索引的循环是相当常见的,但这是一种不当做法。其迫使你通过显式索引变量访问元素,所以它不仅Python特性不明显,而且还存在可读性问题。使用enumerator能提供一个元组的优势,该元组负责同时跟踪索引值和元素。除了更简便,优化程度还更高,它还提供了可选的第二个参数来设置数值。忽略内置函数和过度循环循环不是不能用,但在其中应用转换操作时,它可能会导致冗长的条件代码。在这种情况下,不要忽略已经可以使用的内置函数,如map()filter()和reduce(),这是非常重要的。更重要的是,Python提供了列表解析,这显然是最具Python特性的替换循环方法。嵌套for循环是代码异味的另一个典型例子。Python程序员在进行模式匹配或一起运行多个迭代时很容易中枪。下列代码一旦再加几行就会看起来不美观:使用itertools不仅可以提高性能,还更简洁明了。看看上面的代码在itertools.product()中有多整洁:通过使用上面的product,也可以很容易地将其传递到其他高阶函数中。同时在多个列表上同时迭代时,使用zip()函数也不错(如需索引,还可以使用enumerator)。滥用列表解析列表解析能灵活创建列表,功能强大,但很容易被误用或滥用,来看一些案例。(1) 在不需要时过度进行列表解析通常,我们开始沉迷于使用列表解析是为了尝试花哨的东西,而不是真需要它。比如在简单的情况下可以使用列表构造函数:(2) 在实际不存储时使用列表解析列表解析有助于轻松定义和创建列表,但它们始终存储于内存中。如果不使用系统进程,将有可能损害大数量的数据。因此,使用生成器表达式是更好的选择,因为它按需一次加载一个值。嵌套分析也需要关注,因为这可能导致可读性问题,知道什么时候使用它,什么时候回退到for循环上是很重要的。喜欢布尔标志参数和全局变量布尔是最容易学习的数据类型。在Python中,提供命名参数使工作轻松得多。但是,它们很容易产生嵌套if else块的复杂代码并导致可读性问题。多个布尔存在隐藏的依赖关系,会产生一些问题。因而最好使用枚举,而不是多布尔逻辑。Enum数据类型是可扩展的,可以确保更好的代码结构。全局变量在所有语言中都是麻烦的,Python也是如此。虽然有时我们确实需要使用它们,但将其误用作传递或访问数据的快捷方式可能很危险,因为它可变。跟踪它的状态会很棘手,因为你永远不知道谁可能会改变它。如果开始到处使用全局变量,命名冲突则会导致命名空间受到不好的影响。到此,关于“Python中五大代码异味是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注云技术网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: 什么是Cortex、ARMv8、arm架构、ARM指令集、soc

这篇文章主要介绍“什么是Cortex、ARMv8、arm架构、ARM指令集、soc”,在日常操作中,相信很多人在什么是Cortex、ARMv8、arm架构、ARM指令集、soc问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册