python - 为什么有时 Python 代码中有 obj_method = obj.method 模式?
问题描述
我想知道使用它的原因是什么以及这种模式何时有帮助。
集合模块中有几个示例。首先在_count_elements
:
def _count_elements(mapping, iterable):
'Tally elements from the iterable.'
mapping_get = mapping.get
for elem in iterable:
mapping[elem] = mapping_get(elem, 0) + 1
if iterable is not None:
if isinstance(iterable, _collections_abc.Mapping):
if self:
self_get = self.get
for elem, count in iterable.items():
self[elem] = count + self_get(elem, 0)
解决方案
在这两个示例中,这样做都有性能原因。调用“。” 对象上的运算符需要在对象的属性集中查找属性/方法(例如get
在上面的示例中)。通过将方法分配给新变量(例如self_get
,您无需在每次迭代中进行此查找。
推荐阅读
- javascript - Nuxt 视频未从 URL 加载
- python-3.x - 使用python3在空间进行字符串分离
- javascript - 将分类处理为标签或层次结构?
- c++ - classname functionname(const classname & objectname) 是什么意思?
- r - 在 Debian GNU/Linux 9 的 VM 中安装 R 版本 3.5.2 的蛮力
- saxon - 流式传输 xml 到 json
- networking - 使用 packet_mmap 的以太网捕获比wireshark 获得更多的数据包
- php - Laravel Eloquent 过滤产品的属性
- python - 从缺少最后几列的 txt 文件行中读取 int 数组作为向量。由一些空格分隔的数据
- .net - Blazor .net 版本兼容性问题