小编Ott*_*tto的帖子

Python相当于Typescript接口

最近我一直在使用Typescript,它允许表达如下内容:

interface Address {
    street: string;
    housenumber: number;
    housenumberPostfix?: string;
}

interface Person {
    name: string;
    adresses: Address[]
}

const person: Person = {
    name: 'Joe',
    adresses: [
        { street: 'Sesame', housenumber: 1 },
        { street: 'Baker', housenumber: 221, housenumberPostfix: 'b' }
    ]
}
Run Code Online (Sandbox Code Playgroud)

非常简洁,并在使用人员编码时将所有奢侈品作为类型检查和代码完成.

这是如何在Python中完成的?

我一直在看Mypy和ABC但是还没有成功找到pythonic方式做类似上面的事情(我的尝试导致了太多的样板符合我的口味).

python static-typing typescript mypy

27
推荐指数
5
解决办法
7719
查看次数

当 docker 以 PID 1 运行时,为什么我不能在 docker 中 CTRL-C 睡眠无穷大

案例:我们有一个运行 bash 脚本的 docker 容器,该脚本需要永远“阻塞”(因为它为另一个容器公开了一个卷,但有时我们需要这样做还有其他原因)。

我当时认为这可以工作:

exec sleep infinity;
Run Code Online (Sandbox Code Playgroud)

ps aux 然后将“睡眠”作为 PID 1。太好了,我想,然后它将接收我们从容器外部发送的信号。例如:

docker kill -s INT container_name
Run Code Online (Sandbox Code Playgroud)

但这不起作用,容器继续运行(也适用于 SIGTERM)。正常的杀戮确实有效,但我不明白为什么会有区别(这让我很恼火):

docker kill container_name
Run Code Online (Sandbox Code Playgroud)

当它在我的容器中作为 PID 1 运行时,为什么我不能用 SIGINT/SIGTERM 杀死“睡眠”?我相信当它们在容器中作为 PID 1 运行时,我可以使用 SIGINT/SIGTERM 杀死其他东西(如 bash 脚本)。

bash sleep sigkill sigint docker

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

标签 统计

bash ×1

docker ×1

mypy ×1

python ×1

sigint ×1

sigkill ×1

sleep ×1

static-typing ×1

typescript ×1