Python中“检查”和“交互”命令行标志之间的区别

Python中“检查”和“交互”命令行标志之间的区别,第1张

Python中“检查”和“交互”命令行标志之间的区别

根据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上退出(例如,在脚本末尾),并向您显示一个交互式提示,而不是(允许您检查模块状态(因此“检查”)标志的名称))。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5663659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存