可以在脚本中设置Python -O(优化)标志吗?
我想在运行时设置优化标志(python -O myscript.py
),也就是说在我的Python脚本中根据命令行参数来决定,比如像这样使用:myscript.py --optimize
或者 myscript --no-debug
。我希望能跳过 assert
语句,而不需要把所有的 assert
都删掉。或者有没有更好的方法可以有效地忽略Python代码中的某些部分?在Python中有没有类似于C++中的 #if
和 #ifdef
的东西?
2 个回答
8
#!/usr/bin/env python
def main():
assert 0
print("tada")
if __name__=="__main__":
import os, sys
if '--optimize' in sys.argv:
sys.argv.remove('--optimize')
os.execl(sys.executable, sys.executable, '-O', *sys.argv)
else:
main()
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
13
-O
是一个编译器的选项,你不能在程序运行时设置它,因为到那个时候,程序已经被编译好了。
Python 没有类似于编译器宏的东西,比如 #if
。
你可以简单地写一个 start_my_project.sh
脚本来设置这些选项。