当前位置:  开发笔记 > 编程语言 > 正文

在Python中提供全局范围中的一些默认方法的原因是什么?

如何解决《在Python中提供全局范围中的一些默认方法的原因是什么?》经验,为你挑选了1个好方法。

在全局范围中提供一些默认方法(如len函数)的原因是什么,而不是在实例级别提供它们,例如:

list.len()

代替:

len (list)

我发现像len这样的方法比实例方法更难发现.

这背后有什么理由吗?



1> Manuel Ceron..:

这个问题很相似,这一个.答案是一样的:

因为Python的创建者Guido van Rossum认为前缀表示法在某些情况下更具可读性.这是完整的答案.我要引用一些部分:

(a)对于某些操作,前缀表示法只比读后缀更好 - 前缀(和中缀!)操作在数学中有悠久的传统,它喜欢视觉效果帮助数学家思考问题的符号.比较我们将x*(a + b)等公式重写为x a + x b的简单性,以及使用原始OO表示法做同样事情的笨拙.

(b)当我阅读len(x)代码时,我知道它是在询问某些东西的长度.这告诉我两件事:结果是一个整数,参数是某种容器.相反,当我读取x.len()时,我必须知道x是某种实现接口的容器,或者是从具有标准len()的类继承的.当没有实现映射的类具有get()或keys()方法,或者不是文件的类具有write()方法时,见证我们偶尔会遇到的混淆.

用另一种方式说同样的事情,我认为'len'是一种内置 操作.我不想失去那个.我不能肯定地说你是否意味着,但是'def len(self):......'听起来好像你想把它降级为普通的方法.我非常喜欢这个.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有