对于这门语言是陌生的,我无法理解为什么在Python中两个内置函数sorted
和reversed
以过去分词形式命名,而其他类似{{ 1}}或format
以动词形式命名。
为什么不能像其他几种语言一样将这些函数命名为filter
和sort
?
在语义上,我希望 reverse
返回一个布尔值-如 sorted?所示,它指示传递的列表是否已排序,但是可能是因为其他语言对我的影响。
但是以这种我看不见的方式命名sorted
和sorted
的理由是什么吗?
更新,因为几乎所有答案/评论都没有抓住重点。我知道这两个函数都返回新对象,而无需修改传递给它们的内容。
但本着同样的精神,reversed
不能命名为filter
,而filtered
是否不能命名为format
吗?跨语言命名会更一致吗?
更新2 :由于该问题据说是基于观点的,所以这样命名可能只是语言设计者的意见。命名Python的内置函数并使它们保持一致可能没有任何根据。
如果有理由,请问formatted
是否也可以format
以获得统一性和一致性?
答案 0 :(得分:4)
在Python中,sort
是就地排序函数,而sorted
是返回新排序后的集合的函数:
a = [2,3,1,4]
print(sorted(a))
print(a)
print(a.sort())
print(a)
输出:
[1, 2, 3, 4]
[2, 3, 1, 4]
None
[1, 2, 3, 4]
第一张印刷品是排序列表。原始列表在此之后保持不变。第三次打印是a.sort
-None
的结果(因为它什么也不返回)。并且原始列表在此函数调用之后排序。
相同的行为适用于reverse/reversed
函数。