我想根据脚本的命令行参数(例如python -O myscript.py
或{{}在python脚本中的运行时设置优化标志(myscript.py --optimize
) 1}}。我想跳过myscript --no-debug
语句,而不是把它们全部丢掉。或者是否有更好的方法来有效地忽略python代码的各个部分。在C ++中是否有assert
和#if
的python等价物?
答案 0 :(得分:12)
-O
是一个编译器标志,你不能在运行时设置它,因为那时脚本已经被编译过了。
Python与#if
等编译器宏没有任何可比性。
只需编写一个设置这些标志的start_my_project.sh
脚本。
答案 1 :(得分:7)
#!/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()