小编Jef*_*den的帖子

Python的禅宗将Python的指导原则提炼为20个格言,但仅列出了19个.第二十个是什么?

PEP 20开始,Python的禅宗:

长期以来,Pythoneer Tim Peters简洁地将BDFL的设计指导原则引入20个格言中,其中只有19个被写下来.

这第二十句格言是什么?它是否存在,或仅仅是一种使读者思考的修辞手段?

(对我来说,一个可能的答案就是"你不需要它"是剩下的格言.如果是这样的话,它既存在可以让读者思考,并且它的特点是有趣,因此更适合列表.但网络搜索表明这是一个极端的编程口头禅,而不是本质上的Pythonic智慧,所以我很难过.)

python

59
推荐指数
8
解决办法
4397
查看次数

为什么C++ 11不支持匿名结构,而C11呢?

C11支持匿名结构,如下所示:

struct Foo
{
    struct
    {
        size_t x, y;
    };
};
struct Foo f;
f.x = 17;
f.y = 42;
Run Code Online (Sandbox Code Playgroud)

基本上,这样的成员struct被视为封闭的成员structunion(如果封闭结构本身是匿名的,则递归地).

C++ 11的理由是什么,还包括匿名结构?当然,它们只是非常有用(主要是在工会内部,以消除标识符的输入struct).但它们似乎是对规范的明显补充(以及已经由许多编译器实现的规范),它们肯定必须经过讨论,至少是为了保持与C11标准的兼容性.那他们为什么不加?

c c++ anonymous-types c++11 c11

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

如何使图片框可选?

我正在制作一个非常基本的地图编辑器.我已经完成了一半,我遇到的一个问题是如何删除一个对象.

我想按删除但似乎没有图片框的keydown事件,看起来我将只在我的列表框上.

在我的编辑器中删除对象的最佳解决方案是什么?

user-interface winforms

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

如何在Python中从其名称中确定Unicode字符,即使该字符是控制字符?

我想创建一个Unicode代码点数组,它构成JavaScript中的空白区域(减去我分别处理的Unicode白空间代码点).这些字符包括水平制表符,垂直制表符,换页符,空格,不间断空格和BOM.我可以用魔术数字做到这一点:

whitespace = [0x9, 0xb, 0xc, 0x20, 0xa0, 0xfeff]
Run Code Online (Sandbox Code Playgroud)

这有点模糊; 名字会更好.通过的unicodedata.lookup方法ord有助于:

>>> ord(unicodedata.lookup("NO-BREAK SPACE"))
160
Run Code Online (Sandbox Code Playgroud)

但这不适用于0x9,0xb或0xc - 我认为因为它们是控制字符,而"名称"FORM FEED等只是别名.有没有办法将这些"名称"映射到标准Python中的字符或其代码点?还是我运气不好?

python unicode

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

为什么std :: atomic_ {char,schar等} typedef允许是std :: atomic <T>的基类的typedef,而不是仅仅是atomic <T>?

C++ 11 [atomics.types.generic] p7:

应该有与atomic表145中规定的整数特化相对应的命名类型,以及atomic_bool与指定的对应的命名类型atomic<bool>.每个命名类型都是相应特化的typedef 相应特化的基类.如果它是基类,它应支持与相应的特化相同的成员函数.

(重点补充)

对于所有其他类型而言,std::atomic_char不相同的理由是什么std::atomic<char>,等等?这实现了什么灵活性,为什么它有用?乍一看,我不明白为什么不需要std::atomic<T>直接将typedef作为typedef .

请注意,提出的N2427<atomic>表明typedef完全是特化,而不是基类.

c++ stl atomic c++-standard-library c++11

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

是否有可能阻止RAII风格的类"匿名"实例化?

假设我有一个RAII风格的C++类:

class StateSaver
{
  public:
    StateSaver(int i) { saveState(); }
    ~StateSaver() { restoreState(); }
};
Run Code Online (Sandbox Code Playgroud)

...在我的代码中使用如下:

void Manipulate()
{
  StateSaver save(1);

  // ...do stuff that modifies state
}
Run Code Online (Sandbox Code Playgroud)

......目标是进入一些状态,做一些事情,然后离开那个范围时离开那个状态.有没有办法让这个拼写错误不编译(或警告,或以某种方式抱怨,以便可以注意到错误)?

void Manipulate()
{
  StateSaver(1); // ruh-roh, state saved and immediately restored!

  // ...do stuff that modifies state
}
Run Code Online (Sandbox Code Playgroud)

我不知道C++本身有什么东西可以用来防止这种情况,但这并不意味着它不存在.如果C++中没有任何内容,则可以接受特定于编译器的扩展.我主要对gcc和msvc的任何目标感兴趣(有一天icc,其他编译器的想法欢迎,但不太可能有用)所以任何一个hacks都很有用(当然,抽象为适当的#ifdef'd宏定义) .

c++ gcc raii icc visual-c++

7
推荐指数
3
解决办法
597
查看次数

在C++中是否定义了无符号(-0.0)的行为?

C++ 11 4.9浮动积分转换[conv.fpint]:

可以将浮点类型的prvalue转换为整数类型的prvalue.转换截断; 也就是说,丢弃小数部分.如果截断的值无法在目标类型中表示,则行为未定义.

如果值是-0.0,是否定义了行为?它归结为"截断值是否无法在目标类型中表示".零可以代表.可以负零吗?在这种情况下,两个零值是区分还是不区分?

c++ floating-point type-conversion language-lawyer

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

jQuery和long int id

我遇到了下一个问题:

在我们的数据库中,我们有带有id的对象,如4040956363970588323.我正在jQuery上编写一些客户端向导,用于与这些对象进行交互.客户端通过Ajax请求接收有关对象的基础数据,如:

$.ajax({
        url: "/api/pages/",
        type: "get",
        dataType: "json",
        data: {"id": site_id},
        success: function(data){
            if (data.success){
                for (var pidx in data.pages){
                    console.log(data.pages[pidx].id);
                    var li = $('<li class="ui-widget-content"></li>');
                    var idf = $('<input type="hidden" id="pid" value="{0}"/>'.format(data.pages[pidx].id))
                    var urlf = $('<input type="hidden" id="purl" value="{0}"/>'.format(data.pages[pidx].url))
                    li.text(data.pages[pidx].title);
                    li.append(idf);
                    li.append(urlf);
                    $("#selectable_pages_assign").append(li);
                }
                pages_was = $("#selectable_pages_assign>li");
            }
            else
                 updateTips(data.message);
        },
        error: function(){
             updateTips("Internal erro!");
        }
})
Run Code Online (Sandbox Code Playgroud)

所以,正如你所看到的,我发送的数据就像JSON对象(一些服务器代码):

return HttpResponse(dumps({
                        "success": True,
                        "pages": [{"id": page.id, "title": page.title, "url": page.image} for page in …
Run Code Online (Sandbox Code Playgroud)

javascript floating-point jquery floating-accuracy

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

Intl.Collat​​or 和带有数字选项的自然排序对十进制数字的排序不正确

Intl.Collator使用和 启用选项对十进制数字进行排序numeric会错误地比较小数。

在某些浏览器上,比较“0.005”和“0.05”会返回“0”,因为数字相同。

不同浏览器中的结果:

  • 铬 54 = 0
  • 火狐 49 = 0
  • 边缘=-1
  • IE 11 = -1

// Returns 0
console.log(new Intl.Collator(undefined, { numeric: true}).compare(0.000005, 0.05))
Run Code Online (Sandbox Code Playgroud)

谁能告诉我出了什么问题吗?

报告为 Firefox 中的错误:https://bugzilla.mozilla.org/show_bug.cgi ?id=1312388

javascript ecmascript-intl

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

在C++代码中,在链接规范(extern"C",extern"C++")中包含标准C头的指定行为是什么?

通常,在全局命名空间中包含C++中的标准库头,在任何externs 之外,如下所示:

#include <stdint.h>

int main() { }
Run Code Online (Sandbox Code Playgroud)

但是如果在一个标准库头中包含标准库头,那么会发生什么?例如:

extern "C" {
#include <stdint.h>
}
int main() { }
Run Code Online (Sandbox Code Playgroud)

要么

extern "C++" {
#include <stdint.h>
}
int main() { }
Run Code Online (Sandbox Code Playgroud)

它是否指定了在任何一种情况下应该发生什么,或者它是实现定义的还是未定义的?

C++ 11 17.6.2.3p1说C++标准库头文件包含了东西extern "C++",但我的初步读物是这不适用于C头文件<stdint.h>.C++ 11 17.6.2.2p3表示标题只能在#include任何"外部声明"之外; 这个短语只出现在C++ 11中的这一个地方,所以我不确定它是否适用于此处.(我假设C99对此无话可说.)

(对于我的特殊情况,它不是使用C++ <c*>标准头文件的选项,所以我真的只需要知道旧版C头文件的语义.)

c c++ header-files linkage

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

如何使maxlength属性可访问?

我在一些输入字段中有一个表单。对于输入字段之一,我使用了长度验证maxlength="20"

这里的问题是JAWS用户不知道在输入字段中已达到最大长度,因为JAWS继续读取他们在键盘上按下的键。

有没有办法使它易于使用?

此致Zeeshan

html forms accessibility

5
推荐指数
2
解决办法
2126
查看次数