我正在实现一个命令行程序,其界面如下:
cmd [GLOBAL_OPTIONS] {command [COMMAND_OPTS]} [{command [COMMAND_OPTS]} ...]
Run Code Online (Sandbox Code Playgroud)
我已经浏览了argparse文档.我可以GLOBAL_OPTIONS使用add_argumentin 实现可选参数argparse.并{command [COMMAND_OPTS]}使用子命令.
从文档中看来,我只能有一个子命令.但是你可以看到我必须实现一个或多个子命令.解析使用这些命令行参数的最佳方法是什么argparse?
使用getUserMedia我可以从客户端的网络摄像头/摄像头捕获视频流.使用video标签我可以在客户端的浏览器上显示它.码:
<video autoplay></video>
<script type="text/javascript">
window.URL = window.URL || window.webkitURL;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
var video = $('video')[0];
var failed = function(e) {
console.log('Denied!', e);
};
if( navigator.getUserMedia ) {
navigator.getUserMedia( {video: true, audio: true}, function( stream ) {
video.src = window.URL.createObjectURL(stream);
}, failed
)
} else {
console.log( 'Not supported!' );
}
</script>
Run Code Online (Sandbox Code Playgroud)
现在是否可以将此视频流作为实时源或用户完成录制并决定上传后发送到服务器?
我找到了一些例子:
我正在使用multiprocessing.Pool和实现python中的生产者 - 消费者模式multiprocessing.Queue.消费者是gevent用于产生多个任务的预分叉进程.
这是一个精简版的代码:
import gevent
from Queue import Empty as QueueEmpty
from multiprocessing import Process, Queue, Pool
import signal
import time
# Task queue
queue = Queue()
def init_worker ():
# Ignore signals in worker
signal.signal( signal.SIGTERM, signal.SIG_IGN )
signal.signal( signal.SIGINT, signal.SIG_IGN )
signal.signal( signal.SIGQUIT, signal.SIG_IGN )
# One of the worker task
def worker_task1( ):
while True:
try:
m = queue.get( timeout = 2 )
# Break out if producer says quit …Run Code Online (Sandbox Code Playgroud) SQLAlchemy中有没有办法进行跨数据库连接.具体来说,这是我的用例:
架构
模型
我正在为模型使用声明式样式.
class Entity1(Base):
__tablename__ = 'entity1' ## I tried combination of <db>.<table> with no success
entity1_id = Column(Integer, primary_key=True)
entity2_id = Column(Integer, ForeignKey('db2.entity2.entity2_id'))
entity2 = relationship('Entity2')
class Entity2(Base):
__tablename__ = 'entity2' ## I tried combination of <db>.<table> with no success
entity2_id = Column(Integer, primary_key=True)
Run Code Online (Sandbox Code Playgroud)
现在,正如预期的那样,我对Entity1的查询失败,并显示MySQL错误消息,表示找不到表entity2.我尝试了许多不同的组合但__tablename__没有成功.所以我想知道SQLAlchemy是否可行.
我在TwistedSNMP库中找到以下代码:
try:
raise ImportError
import psyco
except ImportError, err:
pass
else:
from pysnmp.asn1 import base
psyco.bind(base.SimpleAsn1Object) psyco.bind(base.Asn1Object)
Run Code Online (Sandbox Code Playgroud)
源文件名:pysnmpproto.py,第42行
是否有任何任何情况下import psyco或else块永远不会被执行?
是实现定义还是标准建议流的默认填充字符?
示例代码:
#include <iostream>
#include <iomanip>
#include <sstream>
int main ()
{
std::stringstream stream;
stream << std::setw( 10 ) << 25 << std::endl;
std::cout << stream.str() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
同 clang++ --stdlib=libstdc++
$ clang++ --stdlib=libstdc++ test.cpp
$ ./a.out | hexdump
0000000 20 20 20 20 20 20 20 20 32 35 0a 0a
000000c
$
Run Code Online (Sandbox Code Playgroud)
同 clang++ --stdlib=libc++
$ clang++ --stdlib=libc++ test.cpp
$ ./a.out | hexdump
0000000 ff ff ff ff ff ff ff ff 32 35 0a 0a
000000c …Run Code Online (Sandbox Code Playgroud) 一个简单的程序来演示这种行为:
use std::boxed::Box;
struct Cow;
trait CanSpeak {
fn speak(&self);
}
impl CanSpeak for Cow {
fn speak(&self) {
println!("moo");
}
}
impl<F: Fn()> CanSpeak for F {
fn speak(&self) {
self();
}
}
impl<T: CanSpeak> CanSpeak for Box<T> {
fn speak(&self) {
(**self).speak()
}
}
fn lol_speak() {
println!("lol")
}
fn lets_speak<T: CanSpeak>(t: & T) {
t.speak();
}
fn main() {
let cow = Cow;
lets_speak( &cow );
lets_speak( &lol_speak );
let boxed_cow = Box::new(Cow);
lets_speak( &boxed_cow );
} …Run Code Online (Sandbox Code Playgroud) 我正在使用BGL来存储我的DAG.顶点有状态.给定一个顶点中的状态变化,我想更新依赖顶点.这我可以使用boost :: depth_first_search和自定义访问者.
现在的逻辑是,如果顶点处于特定状态,我不想更新搜索的顶点及其相关因素.基本上我想控制dfs或bfs中顶点的排队.在BGL中实现这一目标的最佳方法是什么.
谢谢.
这里有一个更通用的问题.将此视为对此的扩展.
我理解类代表对象的类型,我们应该使用名词作为名称.但是,许多语言支持的函数对象更像是函数而不是对象.我应该将这些类别命名为名词,或者在这种情况下动词是否正常.doSomething()从语义上讲,比说更有意义Something().
更新/结论
我得到的两个最高投票答案分享了一个混合的意见:
阿提拉
然而,在仿函数的情况下,它们代表"动作",因此用动词(或某种名词 - 动词组合)命名它们更合适 - 就像你根据它正在做什么命名一个函数一样.
车
另一方面,仿函数的实例实际上是一个函数,也许可以更好地命名.按照Jim的建议,
SomethingDoer doSomething; doSomething();
在经过一些代码之后,他们两个似乎都是常见的做法.在GNU实现STL的,我发现类,如negate,plus,minus(位/ stl_function.h)等.并且variate_generator,mersenne_twister(TR1/random.h).类似地,在升压我发现类,如base_visitor,predecessor_recorder(图/ visitors.hpp)以及inverse,inplace_erase(ICL/functors.hpp)
我在c ++程序中遇到了一个奇怪的segfault案例.我能用小代码重现它,但不明白它为什么会发生.这是代码:
a.hpp:
#pragma once
#include <boost/shared_ptr.hpp>
#include "b.hpp"
class A
{
public:
explicit A ();
private:
std::string str1_;
B b_;
std::string str2_;
};
typedef boost::shared_ptr< A > A_ptr;
Run Code Online (Sandbox Code Playgroud)
a.cpp
#include "a.hpp"
A::A () {}
Run Code Online (Sandbox Code Playgroud)
b.hpp
#pragma once
#include <string>
class B
{
public:
B ();
private:
std::string str1_;
};
Run Code Online (Sandbox Code Playgroud)
b.cpp
#include "b.hpp"
B::B () {}
Run Code Online (Sandbox Code Playgroud)
main.cpp中
#include "a.hpp"
int main ()
{
A_ptr a( new A() );
}
Run Code Online (Sandbox Code Playgroud)
make的输出:
% make
g++ -Wall -Wextra -g -fno-inline -O0 …Run Code Online (Sandbox Code Playgroud) c++ ×4
python ×4
argparse ×1
boost ×1
boost-graph ×1
callable ×1
clang++ ×1
coding-style ×1
defunct ×1
functor ×1
generics ×1
gevent ×1
graph ×1
html5 ×1
html5-video ×1
import ×1
libc++ ×1
rust ×1
setw ×1
sqlalchemy ×1
stringstream ×1
traits ×1
try-catch ×1
websocket ×1