您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

一个比第二个更有效。 del foo.bar编译为两个字节码指令:

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

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

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

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

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

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

python 2022/1/1 18:48:40 有334人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶