如果文件从未保存过,如何在 IDLE 中重新引入 "no prompt to save" 选项

How to reintroduce "no prompt to save" option in IDLE if file has never been saved

目前我在我的笔记本电脑 (2.7.12) 上使用最新版本的 Python 2,以及 IDLE 版本 2.7.12 和 TK 版本 8.5.15,以防它们相关。

在我学校的计算机上使用的是稍旧版本的 IDLE(版本 2.7a0),在 IDLE 首选项的 "general" 选项卡中(在选项下,配置 IDLE...),特别是我在笔记本电脑上安装的最新版 IDLE 中再也看不到的首选项。

特别是对于小节"Run (F5) Preferences",它在标题"If file has never been saved"之后提供了两个选项;一个 "Prompt to Save" 和另一个 "No Prompt".

我在更现代的 IDLE 环境下找不到这个选项。我希望你们中的某个人可能知道是否有某种方法可以改变 IDLE 的现代版本或 Python 以重新引入此功能? (例如,我可以打开某种 Python 的源文件并自己进行修改吗?)。

有时我觉得这很令人沮丧,因为我经常想用一些非常简单的代码创建一个新文件来测试我对 Python 的理解在特定概念方面是否正确(即虚数如何在数组中工作)没有 运行 我的整个程序通常要复杂得多,并且需要更长的时间来测试(代码越长,注释掉所有内容就非常乏味)。必须打开一个新文件,输入我的代码,然后将其保存在我的桌面上,这非常耗时。

不管你信不信,有时候我会有多个 windows 测试不同的概念,因为我想以多种方式继续测试 Python 而不会删除我之前在其他测试中所做的工作,正在进行中。

此外,学校计算机使用的是 Python 2.7.12 版和 TK 8.5 版(我还需要弄清楚 TK 是什么意思)。

我知道我可以将 IDLE 的版本回滚到这个早期的形式(我假设这无论如何都会起作用) - 但我也担心我可能会失去现代版本所具有的一些关键功能,或者我会重新引入一些以前已经处理过的错误。

~感谢您的帮助~

Ununium

我对这份报告感到困惑。自动保存首选项部分仍然存在。 idlelib.configDialog.py、class ConfigDialog,方法 CreatePageGeneral 在第 384 和 396 行有(应该有)这段代码。

    frameSave = LabelFrame(frame, borderwidth=2, relief=GROOVE,
                           text=' Autosave Preferences ')
    ...
    #frameSave
    labelRunSaveTitle = Label(frameSave, text='At Start of Run (F5)  ')
    radioSaveAsk = Radiobutton(
            frameSave, variable=self.autoSave, value=0,
            command=self.SetKeysType, text="Prompt to Save")
    radioSaveAuto = Radiobutton(
            frameSave, variable=self.autoSave, value=1,
            command=self.SetKeysType, text='No Prompt')

除了在 2014 年添加空格以符合 PEP 8 之外,此代码自 2003 年以来未发生变化。它前面是 Startup Preferences,后面是 Initial Window size。我使用 hg annotate 查看文件在 2.6 和 2.7 早期的情况。

可能是存储库记录不完整,或者在 alpha0 版本中尝试了一些东西并因为它不能正常工作而被删除(并且提交和恢复都被删除)。如果您发现不同的代码,您可以将片段和启动 header 看起来行 "Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40)" 的部分粘贴到您的问题中。

AFAIK,IDLE 一直要求新文件以名称保存到磁盘,否则将无法创建正确的回溯。跟踪器上的问题 19042 是 运行 'Untitled' windows 的提议,无需通过让 IDLE 选择名称和路径来给出名称。或者保存在 user-configured 目录中。

2.7 的 alpha-0 版本可能是漏洞最多的版本。早该换了。

OT:Tk 是 Tcl 的 GUI 工具包。 Tkinter 是 Python 的 inter-face 到 tk.