为了账号安全,请及时绑定邮箱和手机立即绑定

ipython TerminalInteractiveShell 和 Interactive

ipython TerminalInteractiveShell 和 Interactive

波斯汪 2023-09-26 16:31:19
ipython文档有一长串可配置选项。有些是为了TerminalInteractiveShell,有些是为了InteractiveShell。ipython_config.py当我从命令行生成时,一些选项出现在文档中的一个中,以及另一个中。这有什么规律或理由吗?两者兼备的原因是什么?
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

查看文档中的模块列表,我们有

IPython.core.application:IPython 的应用程序。

IPython.core.interactiveshell:主要的 IPython 类。

IPython.terminal.ipapp:命令行 ipython程序的应用程序对象。

IPython.terminal.interactiveshell:使用prompt_toolkit的IPython终端界面

InteractiveShell是基本的 iPython shell 类,可以为不同的目的对其进行子类化。TerminalInteractiveShell就是这样一个特定的子类。它继承自InteractiveShell,并且是当我们在命令行中键入“ipython”时运行的特定 shell。

TerminalInteractiveShell可用于但不可用于基础的配置选项的一个示例InteractiveShellconfirm_exit. 这似乎是合理的,因为“你真的想退出吗”问题只有当有人在 shell 内按下 Control-D 时才真正相关。

实际上,如果您只是尝试配置命令行 ipython shell,则更改选项的InteractiveShellTerminalInteractiveShell版本都可以,因为TerminalInteractiveShell继承了基类的选项。但是,只编辑更具体的内容会更安全TerminalInteractiveShell,因为基类仍在非终端情况下使用,并且更改其设置可能会导致出现意外的行为。

查看完整回答
反对 回复 2023-09-26
  • 1 回答
  • 0 关注
  • 57 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信