gpt4 book ai didi

python - 多重赋值与 python 中的多重赋值用例

转载 作者:太空宇宙 更新时间:2023-11-04 09:55:28 25 4
gpt4 key购买 nike

如果我想分配 2 个值,分配它会被认为更像 pythonic 吗:

speed, acceleration = 10, 9.8

或者只使用普通的

speed = 10
acceleration = 9.8

我知道这两者并不相同,并且在第一个版本中所有表达式都在赋值之前求值,因此在这种区别影响结果的情况下使用第一个变体是有意义的。 (例如,对于交换值 a,b=b,a 非常好)。

在两种变体之间的选择不会改变结果的情况下,您何时仍会使用多重赋值以及何时您会认为多重赋值更符合 Python 的精神?

最佳答案

我认为这是“主要基于意见”,但如果没有特殊原因使用多个赋值(例如交换示例或返回值拆包)我会坚持使用简单的方法,因为:

  • 更难错过作业。
  • 对于来自其他语言的人来说更容易阅读(不那么令人惊讶或困惑)。
  • 虽然它可能适用于几个变量,但实际上并没有进一步扩展。在大多数情况下,三个肯定太多了。因此,您的代码约定必须类似于“如果您有几个变量,则在一行中分配变量;如果您有更多变量,则每个变量在一行中分配”,或者“成对分配变量”(?)。
  • 更改其中一个变量的值不会影响其他变量的行(从源代码管理的角度来看,这可以看作是积极的)。

也就是说,在某些情况下,我认为多重赋值可能会更好。这是相当主观的,但如果我认为这些值密切相关(即一个没有另一个就没有意义),那么我可能会将它们放在一行中。示例包括一个范围或一组三个坐标中的最小值和最大值。没有那么明确的案例,比如“多项式中的系数”(它们紧密相关,但它们的含义和关系不那么直观)或者你自己的速度和加速度示例,它们也非常相关但仍然有意义他们自己。可能,我的潜意识经验法则是,如果我觉得它们可以属于同一个 tuplenamedtuple,我可以将它们放在一起。 .

关于python - 多重赋值与 python 中的多重赋值用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46053091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com