![]() |
1
8
Python中的变异方法不返回对已变异对象的引用的原因可以在
Command-Query Separation
原则(简称CQS)。Python没有像Meyer的Eiffel语言那样彻底地应用CQS(因为——根据Python的Zen,又名
CQS的深层动机并不是真正的“变种应该不会返回任何有用的东西”:而是“查询应该没有副作用”。保持这种区别(无论是严格的还是“作为一种指导原则而不是规则”)应该有助于你记住它,而且它在某种程度上确实起作用(捕捉到一些意外错误),尽管如果你习惯了流畅的“表达式和语句是一样的”语言,有时会感到不方便。
Python中CQS(广义地说…)的另一个方面是语句和表达式之间的区别。同样,这并不是严格应用的——表达式可以在任何语句可以使用的地方使用,这偶尔会隐藏错误,例如,当有人忘记调用他们需要的函数时
|
![]() |
2
7
嗯,也许可以替换:
|
![]() |
3
1
一般的理由是返回类型为
|
![]() |
4
0
扩展/追加方法就地修改列表,因此不返回列表。 |
![]() |
5
-1
|
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |