小编Chi*_*tor的帖子

types.CodeType()python调用的参数是什么?

我正在尝试为python编写自己的"marshal"代码,这样我就可以在Google App Engine上存储已编译的python代码,以动态的方式提供脚本.大家都可以验证,GAE不支持"marshal","pickle"不能序列化代码对象.

我发现我可以构造一个代码对象,types.CodeType()但它需要12个参数.

尽管我已经尝试过,但我找不到任何关于此调用的文档,我真的需要构建代码对象,以便我可以exec().我的问题是,有没有人知道这个types.CodeType()"构造函数" 的参数是什么或者是什么方式来反省它?我已经使用了这里info()定义的功能,但它只是吐出一般信息!

快速FAQ:

  • 问:为什么要编译代码?
  • 答:CPU时间花费在Google App Engine上的真实资金,以及我可以节省数量的每个CPU周期.
  • 问:为什么不使用"元帅"?
  • 答:这是Google App Engine中不受支持的模块之一.
  • 问:为什么不使用"泡菜"?
  • 答:Pickle不支持代码对象的序列化.

UPDATE

截至2011年7月7日,Google App Engine基础架构不允许实例化代码对象,因此我的论点没有实际意义.希望将来在GAE上得到修复.

python compiler-construction google-app-engine dynamic-cast introspection

15
推荐指数
3
解决办法
3055
查看次数

在BlobBuilder中更改文件名以在XHR上作为FormData传递

我正在尝试将ArrayBuffer上传到服务器(我无法更改),期望我以多部分/表格数据格式上传文件.服务器从Content-Disposition部件中提取filename将保存的部分,并在Content-type提供文件时将使用的MIME类型下.目前,我成功上传文件:

var xhr = new XMLHttpRequest();
var fdata = new FormData();
var bb;

if (WebKitBlobBuilder) {
    bb = new WebKitBlobBuilder();
} else if (MozBlobBuilder) {
    bb = new MozBlobBuilder();
} else if (BlobBuilder) {
    bb = new BlobBuilder();
}

bb.append(obj.array);

fdata.append('file', bb.getBlob("application/octet-stream"));

xhr.open("POST", url, true);
xhr.send(fdata);
Run Code Online (Sandbox Code Playgroud)

但是标题会像浏览器一样在Chrome上发送,例如:

Content-Disposition: form-data; name="file"; filename="blob"
Content-Type: application/octet-stream;
Run Code Online (Sandbox Code Playgroud)

我打算用FileWriter API将它保存到一个临时文件,然后上传它,但这是不对的.

在回答时,请考虑:

  • 服务器无法修改,也不愿意选择其他服务器提供商.
  • 它必须至少在Firefox和Chrome上运行(我的应用仅限于这两种浏览器).

javascript multipartform-data xmlhttprequest mime-types

3
推荐指数
1
解决办法
6057
查看次数