在python,del或delattr中哪个更好?

在python,del或delattr中哪个更好?,第1张

在python,del或delattr中哪个更好?

第一个比第二个更有效。

del foo.bar
编译为两个字节指令

  20 LOAD_FAST     0 (foo)   3 DELETE_ATTR   0 (bar)

delattr(foo, "bar")
需要五个:

  20 LOAD_GLOBAL   0 (delattr)   3 LOAD_FAST     0 (foo)   6 LOAD_ConST    1 ('bar')   9 CALL_FUNCTION 2  12 POP_TOP

这意味着第一个运行速度会 快(但这并不是一个很大的差异–在我的机器上为.15μs)。

就像其他人所说的那样,您真正应该仅在动态确定要删除的属性时才使用第二种形式。

[编辑以显示函数内部生成的字节码指令,编译器可以在其中使用

LOAD_FAST
LOAD_GLOBAL



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5647791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存