python教程—为什么python对某些东西使用两个下划线?-Python实用宝典

python教程—为什么python对某些东西使用两个下划线?

我对实际的编程语言相当陌生,Python是我的第一个。我对Linux有一定的了解,足以用它找到一份暑期工作(我还在读高中),而且在工作中,我有很多空闲时间来学习Python。

我对实际的编程语言相当陌生,Python是我的第一个。我对Linux有一定的了解,足以用它找到一份暑期工作(我还在读高中),而且在工作中,我有很多空闲时间来学习Python。

有一件事一直困扰着我。在Python中,当您有诸如

    x.__add__(y) <==> x+y x.__getattribute__('foo') <==> x.foo

我知道什么方法做什么,我知道它们做什么,但我的问题是:上面的双下划线方法与它们看起来更简单的等价方法有什么不同?

注:实际上,我觉得知道这些非常有用:)如果这些主要是Python的历史方面,那么请随意开始。

回答

对程序员来说,强大的功能是好的,所以应该有一种方法来定制行为。比如操作符重载(……add__,……div__,……ge__,……),属性访问(……getattribute__,……getattr__(这两个是不同的),……在许多情况下,像操作符一样,通常的语法将1:1映射到相应的方法。在其他情况下,有一个特殊的过程,在某个时候涉及到调用各自的方法——例如,只有当对象没有被请求的属性,并且没有实现或引发AttributeError时,才调用_getattr__。其中一些是非常高级的主题,可以让您深入到对象系统的内部,并且很少需要它们。所以不需要全部学习,当你需要/想知道的时候,只要查阅参考资料就可以了。说到引用,这里是

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
1

发表评论