栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在python中实现“ #ifdef”?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在python中实现“ #ifdef”?

如果只想禁用日志记录方法,请使用该

logging
模块。如果日志级别设置为排除调试语句,那么
logging.debug
它将非常接近无操作(它仅检查日志级别并返回而不插入日志字符串)。

如果要在特定条件下以字节码编译时实际删除代码块,则唯一的选择是相当神秘的

__debug__
全局变量。
True
除非将
-O
标志传递给Python(或
PYTHONOPTIMIZE
在环境中设置为非空值),否则将将此变量设置为。

如果

__debug__
if
语句中使用if ,则该
if
语句实际上仅编译到
True
分支中。这种特殊的优化与Python一样接近预处理器宏。

请注意,与宏不同,您的代码在的两个分支上仍必须在语法上正确

if


为了展示其

__debug__
工作原理,请考虑以下两个功能:

def f():    if __debug__: return 3    else: return 4def g():    if True: return 3    else: return 4

现在使用以下命令检查它们

dis

>>> dis.dis(f)  20 LOAD_ConST    1 (3)   3 RETURN_VALUE        >>> dis.dis(g)  20 LOAD_GLOBAL   0 (True)   3 JUMP_IF_FALSE 5 (to 11)   6 POP_TOP     7 LOAD_ConST    1 (3)  10 RETURN_VALUE     >>   11 POP_TOP  3          12 LOAD_ConST    2 (4)  15 RETURN_VALUE          16 LOAD_ConST    0 (None)  19 RETURN_VALUE

如您所见,只有

f
“优化”。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/651316.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号