小编meh*_*hdy的帖子

Eventlet vs Greenlet vs gevent?

我正在尝试创建一个具有事件循环的GUI框架.一些线程来处理UI,一些线程用于事件处理.我搜索了一下,找到了这三个库,我想知道哪一个更好用?优缺点都有什么?

我可以使用这三个库中的一个,甚至可以使用python 线程并发库为自己创建一些东西.

我希望分享任何经验,基准和比较.

python multithreading gevent eventlet greenlets

14
推荐指数
1
解决办法
1万
查看次数

如何在SQLAlchemy中查询由JSON列过滤的数据?

我有一个使用flask-SQLAlchmey的烧瓶应用程序.我有这样的数据库模型

from sqlalchemy.dialects.postgresql import JSON
from flask.ext.sqlalchemy import SQLAlchemy
Run Code Online (Sandbox Code Playgroud)

...

db = SQLAlchemy()
Run Code Online (Sandbox Code Playgroud)

...

class Custom(db.Model):
    __tablename__ = 'custom'
    ...
    data = db.Column(JSON)
    ...
Run Code Online (Sandbox Code Playgroud)

数据字段是这样的: [{"type": "a string", "value": "value string"}, {"type": "another", "value": "val"}, ...]

我想查询其数据包含的所有自定义对象.{"type": "anything", "value": "what I want"}

python postgresql sqlalchemy flask-sqlalchemy

7
推荐指数
1
解决办法
5443
查看次数

如何记录错误并返回/继续结果/选项

我遇到过很多情况,我需要编写类似于此代码片段的代码。我想知道是否有更短的方法可以做到这一点?

loop {
    let res = match do() {
        Ok(res) => res,
        Err(e) => {
            eprintln!("Error: {}", e);
            continue;
        }
    }
        
    // Do stuff with `res` ...
}
Run Code Online (Sandbox Code Playgroud)

或者

fn some_fn() {
    let res = match do() {
        Some(res) => res,
        None => {
            eprintln!("Error: not found");
            return;
        }
    }
        
    // Do stuff with `res` ...
}
Run Code Online (Sandbox Code Playgroud)

我一直在寻找类似?关键字的东西,以便在出现错误时尽早返回,但在函数不返回任何内容的情况下,如果结果是None/ ,我只想不返回任何内容Error

也许是这样的:

loop {
    do().unwrap_or_log(|e| eprintln("{}", e).continue // :D
}
Run Code Online (Sandbox Code Playgroud)

考虑do()永远不会这么短。它可能是一些已经太长的函数调用链。

也许我这样做的方式是唯一的方法,或者也许我做错了什么,导致这样做,而我不应该这样做!?

rust

7
推荐指数
1
解决办法
1815
查看次数

如何动态地在 JSON 中包含/排除结构的字段?

我有一个 ??struct Base

type Base struct {
        Name string `json:"name,omitempty"`
        // ... other fields
}
Run Code Online (Sandbox Code Playgroud)

还有两个嵌入的结构Base

type First struct {
        Base
        // ... other fields
}

type Second struct {
        Base
        // ... other fields
}
Run Code Online (Sandbox Code Playgroud)

现在我想对结构进行编组FirstSecond但有一点不同。我想将该Name字段包含在其中,First但我不想将其包含在Second.

或者为了简化这个问题,我想动态地在其 JSON 中选择加入和退出结构的字段。

注意:Name总是有价值的,我不想改变它。

json struct go

5
推荐指数
1
解决办法
1053
查看次数

python线程是如何工作的?

我想知道 python 线程是并发运行还是并行运行?

例如,如果我有两个任务并在两个线程中运行它们,它们是同时运行还是计划并发运行?

我知道GIL并且线程只使用一个 CPU 内核。

python parallel-processing concurrency multithreading

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