is something wrong with Python Shell (Google App)?
google-app-engine, python, shell
Solution
Short Answer
That is a known bug. Short answer:
- Include everything on one line: `mycolors.append('black'); print mycolors`
- Use my free software tool, App Engine Console. My code is derived from the shell and I have fixed this bug.
Long answer
The bug involves the way that state is stored in between every command you type. Web requests are stateless and request/response only; however the shell (and my console app) is supposed to feel like a stream of consciousness as it is at the traditional Python prompt.
The implementation is roughly this:
- Get a request from a browser which includes a line to execute
- Pull up the specific session which the browser is "in". Basically that is a module similar to `__main__` with some variable bindings.
- Execute the given line of code in that module's context
- Save state by looping through all variable bindings in the context and...
- If the variable is hitherto unseen, store its name and value in the datastore
- If not, ignore it. Here is the bug. You should actually check whether the variable has changed.
Problem
Python Shell - shell.appspot.com is acting weird? or am I missing something? ``` 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'] ``` But the below result is expected ``` ['red', 'green', 'blue', 'black'] ``` And also same with the dictionary data type. Thanks, Abhinay