问题标签 [interactive-shell]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何避免全局变量(/滥用内置函数):在模块/类之间共享数据(Python3)
我希望有一个交互式 shell,允许我使用包中定义的一系列模块执行数据操作。例如,我希望能够输入:
其中Input
,GroupBy
和Output
是我的包的所有模块/类,它们隐式地对某个“全局”data
迭代器进行操作。执行此操作的简单方法是显式传递data
作为参数,但我希望控制发生data
在后台的内容(也许我在用户不知道的情况下将其分布在计算核心和地图缩减中)。
这是我迄今为止最接近的:
然后在我的包裹内__init__.py
煽动env
。然后,我env.py
会将其余的包模块导入它自己的命名空间(例如Input
,GroupBy
和Output
),让我这样做:
这么近,但我想摆脱self
!
我以为我能做的就是让我的env
类继承自dict
,然后做code.interact(local=self)
,但遗憾的是这似乎不起作用?
请告诉我如何以 Pythonic 的方式实现这一点(或解释为什么我要做的不是 Pythonic 并提供替代方案),否则我会非常顽皮并添加data
,builtins
以便我可以在全球范围内访问它模块...
tl,博士;如何将所有包的模块包装在一个控制对全局数据的访问的类中?
php - 是否可以在没有选项卡提示的情况下将代码粘贴到 PHP 的交互式 shell 中?
每当我尝试粘贴大块代码(整个类、长代码片段等)时,输入的每一行代码都会收到这条消息:
我很确定这是因为我的代码是缩进的,并且它通过粘贴制表符来触发制表符功能。如果这只是视觉上的烦恼,我不会在意,但它往往会在方法中间随机停止处理行,然后要求我键入y
或n
.
bash - 如何在 BASH 中继续嵌套循环(在第二个内循环之后)?
想请教您的意见。
我正在使用 while true、read 和 case 构建带有嵌套循环的交互式 bash 脚本。我的问题是,在第二个内循环之后(选择“循环 1.3”时)我想用另一个内循环继续脚本,但它失败了(部分是我关于失败的评论)。
我假设我在语法上遗漏了一些东西,但找不到......
下面是脚本的代码。提前致谢。
python - 具有类和对象自动完成功能的自定义交互式终端 (CLI)
我想在程序中有一个类似于 IPython 的交互式提示。
我想拥有的功能是:
- 自定义提示
- 对象的方法和属性的自动完成
- 方法的执行,读/写属性
- 出错时显示文档字符串
到目前为止,我一直在使用readline
自动完成回调函数和魔术方法,例如__dir__
,__doc__
或__dict__
.
我确信我可以实现这样的解决方案,但我正在寻找一个可以为我完成这项工作的现有模块。
在我的想法中,我想像这样使用它:
一位朋友建议我使用 IPython 而不是自定义解决方案。不幸的是,IPython 对我的应用程序来说太开放了,新手肯定会感到困惑。我不希望最终用户可以访问所有内容。
最后我们会有这样的东西:
一些相关的问题是:
不幸的是,答案建议使用cmd模块,这不是我需要的。
python - python "up-button" 命令完成,matlab/julia 风格
我最近从 Matlab 切换到 Numpy 并且喜欢它。然而,我喜欢 Matlab 的一件非常棒的事情是能够完成命令。它有两种方法可以做到这一点:
1)标签完成。如果我有一个名为 foobar(...) 的函数,我可以执行 'fo',它会自动填写 'foobar'
2)“向上按钮”完成(我不知道该怎么称呼它)。如果我最近输入了一个命令,例如 'x = linspace(0, 1, 100); A = 眼睛(50);' 然后我希望快速输入这个相同的命令,以便我可以重新评估它或稍微改变它,然后我只需输入“x =”,然后按下它,它将循环显示你之前输入的所有以“x”开头的命令='。这是 Matlab 中一个非常棒的功能(如果您听说过 Julia,它会做得更好,因为它允许您自动重新输入整个代码块,例如在交互式提示下定义函数时)
这两个功能似乎都没有出现在普通的 python 交互式 shell 中。我相信选项卡自动完成之前已经讨论过,并且可能可以使用 .pythonrc 启动脚本和一些模块来启用;但是我还没有找到任何关于“向上按钮”完成的信息。Python确实具有基本的向上按钮功能,可以简单地滚动浏览所有先前的命令,但是您不能在命令的开头键入并缩小滚动的命令范围,这会产生巨大的差异。
任何人都知道在普通的 python 交互式 shell 上获得此功能的任何方法,而无需使用需要单独安装的 IPython 笔记本等任何花哨的东西?
python - 在 python 上与交互式 shell 脚本交互
我在 Windows 上有一个交互式 shell 应用程序。我想编写一个 python 脚本,它将命令发送到该 shell 应用程序并读回响应。但是我想以交互方式进行,即只要 python 脚本存在,我希望 shell 应用程序继续运行。
我努力了
然后使用标准输入和标准输出发送和接收数据。似乎正在打开 shell 应用程序,但我无法与之通信。
我究竟做错了什么?
python - 使用 Plink 在交互式 shell 会话中运行多个远程命令
Sudo Python 代码连接到远程服务器,但我没有得到任何输出。我可以使用 pexpect 连接到远程,但在 Windows 上它不起作用。
linux - 在 scala shell 上使用向上箭头进行历史记录/部分搜索
如何使 scala 交互式 shell 程序以这种方式运行(如果我没有输入任何内容,则使用向上箭头转到最后一个命令,或者转到 shell 中以我输入的内容开头的最后一个命令)而不是反向搜索?
python - 嵌入式 IPython 中的自动完成
我正在使用InteractiveShellEmbed
fromIPython.terminal.embed
在我的应用程序中嵌入 IPython。一切正常,但自动完成不适用于模块。例如:import rand[TAB]
未完成到import random
. 我能做些什么来解决这个问题?
我的代码: