Python Shell(谷歌应用程序)有问题吗?

abh*_*kar 5 python shell google-app-engine

Python Shell - shell.appspot.com表现得很奇怪?还是我错过了什么?

Google App Engine/1.3.0
Python 2.5.2 (r252:60911, Apr  7 2009, 17:42:26) 
[GCC 4.1.0]

>>> mycolors = ['red','green','blue']
>>> mycolors.append('black')
>>> print mycolors
['red', 'green', 'blue']
Run Code Online (Sandbox Code Playgroud)

但预计会有以下结果

['red', 'green', 'blue', 'black']
Run Code Online (Sandbox Code Playgroud)

并且与字典数据类型相同.

谢谢,

阿希奈

Jas*_*ith 4

简答

这是一个已知的错误。简短回答:

  • 将所有内容包含在一行中:mycolors.append('black'); print mycolors
  • 使用我的免费软件工具App Engine Console。我的代码是从 shell 派生的,我已经修复了这个错误。

长答案

该错误涉及在您键入的每个命令之间存储状态的方式。Web 请求是无状态的,仅是请求/响应;然而,shell(和我的控制台应用程序)应该感觉像在传统 Python 提示符下的意识流。

实现大致是这样的:

  1. 从浏览器获取包含要执行的行的请求
  2. 拉出浏览器“所在”的特定会话。基本上,这是一个类似于__main__一些变量绑定的模块。
  3. 在该模块的上下文中执行给定的代码行
  4. 通过循环遍历上下文中的所有变量绑定来保存状态并...
    • 如果该变量迄今未见,请将其名称和值存储在数据存储中
    • 如果没有,请忽略它。这是错误。您实际上应该检查变量是否已更改。