Att*_* O. 5 python google-app-engine python-2.5
有没有办法可以让类装饰器在Google App Engine上运行,仅限于Python 2.5?
或者让我重新说一下:是否有可能从已经执行的同一进程中改变Python解析器的行为?例:
good.py:
alter_python_parser()
import bad
Run Code Online (Sandbox Code Playgroud)
bad.py:
@decorated
class Foo(object): pass
Run Code Online (Sandbox Code Playgroud)
或者这可能显然是不可能的.
说明:我想使用大量使用类装饰器的第三方库,并且不想分叉它并维护我自己的版本.另一种方法是Typhoon App Engine使用更新的python 运行我的代码,但我担心谷歌不会在一段时间内升级他们的Python版本......
EDIT:
如何创建一个新的导入钩子,可以在运行中进行字符串替换并从内存加载模块?那应该是可能的.如果那里还没有实现,我会试一试.
但是我如何解析Python 2.6+代码Python 2.5呢?有没有python的解析器?有什么PYPY用?
装饰者只是语法糖.只需更改装饰器用法的实例,即
@decorated
class Foo(object): pass
Run Code Online (Sandbox Code Playgroud)
变
class Foo(object): pass
Foo = decorated(Foo)
Run Code Online (Sandbox Code Playgroud)
实际上,您无法更改解析器.
但是,您可以使用ast模块(在新版本的Python中)自动执行上述过程.
| 归档时间: |
|
| 查看次数: |
660 次 |
| 最近记录: |