您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么Python中的字典和列表不继承'len'函数

为什么Python中的字典和列表不继承'len'函数

Guido的解释在这里

首先,出于HCI的原因,我选择len(x)而不是x.len()(def ()来得晚)。实际上,HCI有两个相互交织的原因:

(a)对于某些运算,前缀表示法比后缀读得更好-前缀(和infix!)运算符在数学中有很长的传统,喜欢在视觉上帮助数学家思考问题的表示法。将我们将x *(a + b)这样的公式重写为x * a + x * b的难易程度与使用原始OO符号做同样事情的笨拙程度进行比较。

(b)当我读到说len(x)的代码时,我知道它是在问某物的长度。这告诉我两件事:结果是整数,参数是某种容器。相反,当我阅读x.len()时,我必须已经知道x是实现接口或从具有标准len()的类继承的某种容器。当未实现映射的类具有get()或keys()方法,或者非文件类具有write()方法时,我们偶尔会感到困惑。

用另一种方式说同样的事情,我将“ len”视为内置操作。我不想失去那个。/…/

python 2022/1/1 18:47:07 有333人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶