我有以下代码
from __future__ import print_function
import subprocess
p = subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p.kill()
p.wait()
print(p.stdin.write(b'some'))
Run Code Online (Sandbox Code Playgroud)
我用python 2.7和python 3.3运行它.使用python 2.7,当我尝试写入stdin时会抛出异常.使用python 3.3这段代码打印4. python 2.7子进程模块和python 3.3有什么区别?
我有一些结构,并希望该结构的方法作为回调。我尝试将回调设置为闭包并调用其中的方法,但这不起作用。
这是我想要的示例。在此示例中,我使用Cursive库:
extern crate cursive;
use cursive::Cursive;
use cursive::views::{BoxView, SelectView, IdView};
use cursive::view::Selector;
struct SomeStruct {
siv: Cursive,
}
impl SomeStruct {
fn new(siv: Cursive) -> SomeStruct {
let mut ss = SomeStruct {
siv: siv
};
let mut select: SelectView<i32> = SelectView::new();
select.set_on_submit(|siv, value| ss.on_submit_callback(siv, value));
ss.siv.add_fullscreen_layer(BoxView::with_full_screen(IdView::new("select", select)));
ss
}
fn on_submit_callback(&mut self, siv: &mut Cursive, value: &i32) {
println!("value - {}", value);
}
}
fn main() {
let siv = Cursive::new();
let mut ss = SomeStruct::new(siv); …Run Code Online (Sandbox Code Playgroud) callback ×1
closures ×1
python ×1
python-2.7 ×1
python-3.3 ×1
python-3.x ×1
rust ×1
subprocess ×1