是否有任何現有的Web應用程序可讓多個用戶同時使用交互式IDLE類型會話?Python:聯網的IDLE /重做IDLE前端,同時使用相同的後端?
喜歡的東西:
IDLE 2.6.4
Morgan: >>> letters = list("abcdefg")
Morgan: >>> # now, how would you iterate over letters?
Jack: >>> for char in letters:
print "char %s" % char
char a
char b
char c
char d
char e
char f
char g
Morgan: >>> # nice nice
如果沒有,我想創建一個。有一些模塊可以用來模擬交互式會話嗎?我想這樣的一個接口:
def class InteractiveSession():
''' An interactive Python session '''
def putLine(line):
''' Evaluates line '''
pass
def outputLines():
''' A list of all lines that have been output by the session '''
pass
def currentVars():
''' A dictionary of currently defined variables and their values '''
pass
(雖然這最後一個函數會更額外的功能。)
制訂我的問題的另一種方式:我想創建一個新的前結束IDLE。我怎樣才能做到這一點?
UPDATE:或者我可以通過eval()
來模擬IDLE?
更新2:如果我做了這樣的事情:
我已經有一個簡單的GAE的Python聊天應用程序設置,能夠讓用戶登錄,使聊天室和聊天彼此。
而不是僅僅節約傳入郵件數據存儲,我可以做這樣的事情:
def putLine(line, user, chat_room):
''' Evaluates line for the session used by chat_room '''
# get the interactive session for this chat room
curr_vars = InteractiveSession.objects.where("chatRoom = %s" % chat_room).get()
result = eval(prepared_line, curr_vars.state, {})
curr_vars.state = curr_globals
curr_vars.lines.append((user, line))
if result:
curr_vars.lines.append(('SELF', result.__str__()))
curr_vars.put()
的InteractiveSession模型:
def class InteractiveSession(db.Model):
# a dictionary mapping variables to values
# it looks like GAE doesn't actually have a dictionary field, so what would be best to use here?
state = db.DictionaryProperty()
# a transcript of the session
#
# a list of tuples of the form (user, line_entered)
#
# looks something like:
#
# [('Morgan', '# hello'),
# ('Jack', 'x = []'),
# ('Morgan', 'x.append(1)'),
# ('Jack', 'x'),
# ('SELF', '[1]')]
lines = db.ListProperty()
莫非這部作品
,或者我離開/這種方法是不可行的/我正在複製工作,當我應該使用已經構建的東西?
UPDATE 3此外,假設我得到了一切工作,我想要語法突出顯示。理想情況下,我會使用一些API或服務來解析代碼並適當地設置它。
for c in "characters":
將成爲:
<span class="keyword">for</span> <span class="var">c</span> <span class="keyword">in</span> <span class="string>"characters"</span><span class="punctuation">:</span>
是否有一個良好的Python現有的工具來做到這一點?
非常有趣的想法,但如果這樣的事情已經存在,我會感到驚訝。 – 2010-05-23 20:52:58