小编ber*_*ers的帖子

如何在 VS Code 宏中将焦点返回到编辑器,将 Python 文本发送到调试控制台?

我尝试按键绑定宏以将 python 文本发送到调试控制台并将焦点返回到 Visual Studio Code 中的编辑器。这是我尝试过的:

settings.json

{
    "macros": {
        "selectionToReplAndReturnToEditor": [
            "editor.debug.action.selectionToRepl",
            "workbench.action.focusActiveEditorGroup"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

keybindings.json

[
    {
        "key": "alt+f9",
        "command": "workbench.action.focusActiveEditorGroup",
    },
    {
        "key": "alt+f10",
        "command": "workbench.debug.action.focusRepl",
    },
    {
        "key": "ctrl+enter",
        "command": "macros.selectionToReplAndReturnToEditor",
        "when": "editorTextFocus && editorHasSelection && editorLangId == 'python' && inDebugMode"
    }
]
Run Code Online (Sandbox Code Playgroud)

现在,Ctrl+Enter确实在调试控制台中执行文本,但不会将焦点返回到编辑器。Ctrl+Enter后面跟着Alt+F9可以做到这一点,但当然,我想绑定一个键。难道我做错了什么?我需要在宏中等待一些时间吗?我怎样才能做到这一点?

python macros visual-studio-code

2
推荐指数
1
解决办法
1232
查看次数

为什么“a 或 b 或 c”不适用于 NumPy 数组?

我想分配给d无论是a或,如果aNoneb或者,如果b是也Nonec。这有效:

a = b = c = np.array([1])
d = a or b or c
Run Code Online (Sandbox Code Playgroud)

但是,这不会:

a = b = c = np.array([1, 2])
d = a or b or c
Run Code Online (Sandbox Code Playgroud)

ValueError:包含多个元素的数组的真值不明确。使用 a.any() 或 a.all()

显然,或者正在逐元素地用于具有多个元素的数组。我可以做什么来实现

d = a or b or c
Run Code Online (Sandbox Code Playgroud)

使用 NumPy 数组?

python

2
推荐指数
1
解决办法
71
查看次数

Python 中是否有“列表成员资格二进制 if”?

我正在寻找某种“二元”(非三元)if,它允许在Python中定义列表成员资格,类似于它在列表推导中的工作方式。考虑下面的代码:

abc = (1, 0, 2)
my_list = [i for i in abc if i]
# observed: [1, 2]

a = 1
b = 0
c = 2
my_list = ["d" if a; "e" if b; "f" if c]
# expected: ["d", "f"]
Run Code Online (Sandbox Code Playgroud)

虽然第一个块有效,但第二个块却不起作用(毫不奇怪)。然而,我发现这个语法非常Pythonic。有没有什么东西可以接近它,例如

my_list = ["d" if a else Nothing; "e" if b else Nothing; "f" if c else Nothing]
Run Code Online (Sandbox Code Playgroud)

python syntax

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

如何在 C++ 预处理器中扩展布尔表达式?

以下代码不扩展布尔表达式,另请参见https://godbolt.org/z/YqbazT3eo

#define EXPAND(x) x

#define SWITCH false
EXPAND(SWITCH || defined(_DEBUG))
Run Code Online (Sandbox Code Playgroud)

我该如何正确地做才能做到

#define FLAG EXPAND(SWITCH || defined(_DEBUG))
Run Code Online (Sandbox Code Playgroud)

(或类似)并且FLAG不会依赖于以后的更改SWITCH

c++ macros preprocessor expansion

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