Guido的解释在这里:
首先,出于HCI的原因,我选择len(x)而不是x.len()(def len ()来得晚)。实际上,HCI有两个相互交织的原因:
(a)对于某些运算,前缀表示法比后缀读得更好-前缀(和infix!)运算符在数学中有很长的传统,喜欢在视觉上帮助数学家思考问题的表示法。将我们将x
*(a + b)这样的公式重写为x * a + x * b的难易程度与使用原始OO符号做同样事情的笨拙程度进行比较。(b)当我读到说len(x)的代码时,我知道它是在问某物的长度。这告诉我两件事:结果是整数,参数是某种容器。相反,当我阅读x.len()时,我必须已经知道x是实现接口或从具有标准len()的类继承的某种容器。当未实现映射的类具有get()或keys()方法,或者非文件类具有write()方法时,我们偶尔会感到困惑。
用另一种方式说同样的事情,我将“ len”视为内置 *** 作。我不想失去那个。/…/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)