我真的很佩服無堆棧的Python的功能,我一直在四處尋找一種方式,同時還使用標準的Python 3解釋效仿它的語法。 An article by Alex J. Champandard in a gamedev blog使它看起來好像greenlet庫可以提供這種功能。我稍微修改了代碼,但最好的臨時任務蕾包裝我能想出是一類抱着一個變量裏面greenlet,因爲這樣的:實現無堆棧的Python
class tasklet():
def __init__(self,function=None,*variables):
global _scheduled
self.greenlet = greenlet.greenlet(function,None)
self.functioncall = function # Redundant backup
self.variables = variables
_scheduled.append(self)
self.blocked = False
該函數然後通過傳遞變量到模擬Stackless的調度當調用它的switch()
方法時。
到目前爲止,這似乎工作,但我希望能夠調用的任務蕾原Stackless的語法,如tasklet(function)(*args)
,相對於的tasklet(function,*args)
當前語法。我不確定在文檔中查找該如何完成此操作的位置。這甚至是可能的,還是Stackless對解釋器的改變的一部分?
已經有基於greenlet的Stackless API的實現。我沒有提供鏈接,因爲我沒有聲望,當我嘗試和分享研究時,發現拒絕帖子的錯誤。這對我來說只是谷歌而言浪費了很多時間。 – user2063430