根据pythonrun.c对应
Py_InspectFlag,
Py_InteractiveFlag使用方法如下:
int Py_InspectFlag; static voidhandle_system_exit(void){ PyObject *exception, *value, *tb; int exitpre = 0; if (Py_InspectFlag) return; }
SystemExit如果“检查”标志为true,Python不会退出。
int Py_InteractiveFlag; intPy_FdIsInteractive(FILE *fp, const char *filename){ if (isatty((int)fileno(fp))) return 1; if (!Py_InteractiveFlag) return 0; return (filename == NULL) ||(strcmp(filename, "<stdin>") == 0) ||(strcmp(filename, "???") == 0);}
如果“ interactive”标志为false并且当前输入未与终端关联,则python不会进入“
interactive”模式(取消缓冲标准输出,打印版本,显示提示等)。
-i选项同时打开两个标志。如果
PYTHONINSPECT环境变量不为空,则“
inspect”标志也会打开(请参阅main.c)。
基本上,这意味着如果您设置
PYTHONINSPECT变量并运行模块,则python不会在SystemExit上退出(例如,在脚本末尾),并向您显示一个交互式提示,而不是(允许您检查模块状态(因此“检查”)标志的名称))。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)