请看下面的例子
point = (1, 2)
size = (2, 3)
color = 'red'
class Rect(object):
def __init__(self, x, y, width, height, color):
pass
Run Code Online (Sandbox Code Playgroud)
打电话是非常诱人的:
Rect(*point, *size, color)
Run Code Online (Sandbox Code Playgroud)
可能的解决方法是:
Rect(point[0], point[1], size[0], size[1], color)
Rect(*(point + size), color=color)
Rect(*(point + size + (color,)))
Run Code Online (Sandbox Code Playgroud)
但是为什么Rect(*point, *size, color)不允许,你能想到的是否存在任何语义模糊或普遍缺点?
为什么在函数调用中不允许多个*arg扩展?
为什么*arg扩展后不允许位置参数?
我在Windows 7上使用"United States-International",与gVim 7.3结合使用会导致问题.
在美国 - 国际键盘布局中键"和'死键,这意味着,您可以将它们与另一个键组合.例如压制"+a在结果ä和键'+a中á.要插入一个双引号,您只需要点击即可"+space.
但是当我进入"+spacegVim(在编辑模式下)没有任何反应时,没有插入任何字符.当我进一步命中空间时,只插入空格.似乎键"+space没有组合成一个"字符.然而结合"一个ä按预期工作.
当我按下"后跟空格时,"缓冲直到我输入另一个字符,然后与它结合(如果可能的话).例子:
"+space+space+a => » ä« "+space+space+b => » "b« "+space+space+" => » ""«
有谁知道如何解决这个问题?
顺便说一下,vim中的行为不受影响(通过cmd.exe)
我使用 Qt Designer 设计用户界面,然后*.ui在 Python 中加载文件。
对于按钮,我想添加 Breeze 主题中的图标。在 Qt Designer 中,我可以通过“从主题设置图标...”添加图标
但这是从不同的主题加载图标。在我的 Python 代码中,我选择了主题 via。
QtGui.QIcon.setThemeName("breeze")
Run Code Online (Sandbox Code Playgroud)
它在运行时显示如下:
这也是我想在 Qt Designer 中看到的。
问题:如何设置 Qt Designer 以使用 Breeze 主题中的图标?
版本:
- Qt Creator:基于 Qt 5.5.1 的 3.5.1
- 乌班图:16.04
- PySide2:5.12.3
- 蟒蛇:2.7.12
我想引入在编译时进行错误检查的强类型。对于我的 chrono 类型,我注意到当基础类型从 变为 时,文字会默默地缩小int64_t,int32_t从而导致溢出。所以我引入了显式检查。
delay_t {10s}然而,即使对于常量参数(例如无法表示的 ),在编译时也不会检查此检查。
#include <chrono>
#include <cstdint>
#include <stdexcept>
struct delay_t {
std::chrono::duration<int32_t, std::nano> value {};
constexpr explicit delay_t(std::chrono::duration<int64_t, std::nano> delay)
: value {delay}
{
if (value != delay) {
throw std::runtime_error("delay cannot be represented.");
}
};
};
auto foo(delay_t delay) -> void {}
auto main() -> int {
using namespace std::chrono_literals;
foo(delay_t {10s}); // here I want a compile time error,
// but I get a runtime error.
return …Run Code Online (Sandbox Code Playgroud)