我的目标是为IPython编写一个交互式变量查看器,即允许人们看到,将嵌套的dicts /列表称为树,然后向下钻取(有点像Javascript中的console.log).
我花了很多时间尝试从IPython中的directview示例中提取简约代码,但仍然无法理解它是如何工作的.我的Python没问题,但我的jQuery体验非常有限.
所以我要把directview.js剥离到下面
container.show();
var widget = $('<div/>')
element.append(widget);
var output = $('<div></div>');
$(widget).append(output)
var output_area = new IPython.OutputArea(output, false);
var callbacks = { 'output': $.proxy(output_area.handle_output, output_area) };
var code = 'print 1+1'
var msg_id = IPython.notebook.kernel.execute(code, callbacks, {silent: false});
Run Code Online (Sandbox Code Playgroud)
这在加载directview.ipynb时有效.不过我还是不太清楚如何使它完全独立的(即不要求directview.py,并通过另一个回调比标准handle_output的IPython.OutputArea).其中一个问题是以container.show()独立方式调用时失败.
我迷失在几个方面:
element.append(widget)然后$(widget).append(output)呢?同样为什么还需要创建一个Ipython.OutputArea.是不是有办法只创建一个<div id=my_output_area>blah</div>然后让output回调用相关数据填充它?output但是当我这样做并且console.log()传递给回调的参数时,它们undefined或者只是无用的.我很欣赏IPython笔记本的作者使用jQuery/websockets创建了这样一个漂亮的前端做了不可思议的工作,并且创建开发人员文档,允许像我这样的初学者调整它,但是如果有人可以借出一个那手会很棒!
我想做这样的事情
def f():
return { 'a' : 1, 'b' : 2, 'c' : 3 }
{ a, b } = f() # or { 'a', 'b' } = f() ?
Run Code Online (Sandbox Code Playgroud)
即,a得到1,b得2,c未定义
这与此类似
def f()
return( 1,2 )
a,b = f()
Run Code Online (Sandbox Code Playgroud) 我一直在使用pdftk用pdf做很多脚本,但我对可以在linux中以编程方式完成的任何事情都是开放的,理想情况是通过命令行或python API.
我需要在pdf中更改页面编号,即使它开始说,在第5页而不是1.我需要偏移的主要原因是我将这个文档合并到其他人,理想情况下我想要每个文件都带有自己的书签并在合并中贡献它们.
如果我不能这样做,一种替代方法是从doc中删除书签(使用pdftk dump_data),将它们转换为python对象,然后通过自己执行页面移动来组合书签.这不是没有痛苦+我有可能会以非预期的方式改变原始文件.
FWIW我在使用dump_data的输出调整后尝试使用pdftk执行update_info.它适用于书签,但更改页码(如在PageMediaNumber中)根本不起作用.
有什么建议?
由于 'changeCursor' 事件(我正在使用 ACE 编辑器),我的一个脚本在某个时候调用了一个函数。当我多次按下它时,这会减慢光标的移动速度。
我真的很想调用这个函数,但是如果只在我的光标停止移动时才调用它就可以了(即我不需要查看中间状态)。
有没有一种标准方法可以忽略最后一个事件之外的所有事件?
我正在尝试使用 python 中的 C# 类,在 mono/ubuntu 上使用 python.net。
到目前为止,我设法用一个参数完成了一个简单的函数调用。我现在要做的是将 python 回调传递给 C# 函数调用。
我在下面尝试了以下变体,但没有一个奏效。有人可以展示如何做到这一点吗?
// C# - testlib.cs
class MC {
public double method1(int n) {
Console.WriteLine("Executing method1" );
/* .. */
}
public double method2(Delegate f) {
Console.WriteLine("Executing method2" );
/* ... do f() at some point ... */
/* also tried f.DynamicInvoke() */
Console.WriteLine("Done executing method2" );
}
}
Run Code Online (Sandbox Code Playgroud)
Python脚本
import testlib, System
mc = testlib.MC()
mc.method1(10) # that works
def f():
print "Executing f"
mc.method2(f)
# does …Run Code Online (Sandbox Code Playgroud) python ×3
javascript ×2
c# ×1
callback ×1
dictionary ×1
events ×1
ipython ×1
jquery ×1
mono ×1
pdf ×1
pdftk ×1
python.net ×1