美文网首页Python
Fluentpython Python的特殊方法

Fluentpython Python的特殊方法

作者: 步履不停的Suunny | 来源:发表于2018-05-08 13:58 被阅读0次

Fluentpython 特殊方法

特殊方法的存在是为了被 Python 解释器调用的
Python 语言参考手册中的“Data Model”(https://docs.python.org/3/reference/datamodel.html)一章列出了83 个特殊方法的名字,其中 47 个用于实现算术运算、位运算和比较操
作。表 1-1 和表 1-2 列出了这些方法的概况。

表1-1.png

表1-2:跟运算符相关的特殊方法

表 1-2.png

为什么len不是普通方法

“实用胜于纯粹。”

如果 x 是一个内置类型的实例,那么 len(x) 的速度会非常快。背后的原因是 CPython 会直接从一个 C 结构体里读取对象的长度,完全不会调用任何方法。获取一个集合中元素的数量是一个很常见的操作,在str、list、memoryview 等类型上,这个操作必须高效.

计算 s 中 x 出现的次数: s.count(x)。注意这里的 s 是一个序列类型。

__str__ 和 __repr__的区别:

>>> print str("Hello,  world!")
Hello,  world!            
>>> print str(1000L)
1000                         
>>> str("Hello, world!")
'Hello, world!'               # 字符串转换之后仍然是字符串
>>> str(1000L)
'1000'

>>> print repr("Hello,  world!")
'Hello,  world!'
>>> print repr(1000L)
1000L
>>> repr("Hello,  world!")
"'Hello,  world!'"
>>> repr(1000L)
'1000L'

str和repr的区别

相关文章

网友评论

    本文标题:Fluentpython Python的特殊方法

    本文链接:https://www.haomeiwen.com/subject/btvirftx.html