小编Chr*_*ger的帖子

循环遍历jQuery中的元素

我想循环遍历HTML表单的元素,并将<input>字段的值存储在对象中.但是,以下代码不起作用:

function config() {
    $("#frmMain").children().map(function() {
        var child = $("this");
        if (child.is(":checkbox"))
            this[child.attr("name")] = child.attr("checked");
        if (child.is(":radio, checked"))
            this[child.attr("name")] = child.val();
        if (child.is(":text"))
            this[child.attr("name")] = child.val();
        return null;
    });
Run Code Online (Sandbox Code Playgroud)

以下都没有(受jobscry答案的启发):

function config() {
    $("#frmMain").children().each(function() {
        var child = $("this");
        alert(child.length);
        if (child.is(":checkbox")) {
            this[child.attr("name")] = child.attr("checked");
        }
        if (child.is(":radio, checked"))
            this[child.attr("name")] = child.val();
        if (child.is(":text"))
            this[child.attr("name")] = child.val();
    });
}
Run Code Online (Sandbox Code Playgroud)

警报始终显示child.length == 0.手动选择元素有效:

    
>>> $("#frmMain").children()
Object length=42
>>> $("#frmMain").children().filter(":checkbox")
Object length=3

有关如何正确执行循环的任何提示?

javascript jquery

27
推荐指数
3
解决办法
11万
查看次数

PBKDF2-HMAC-SHA2测试载体

RFC6070中有针对PBKDF2-HMAC-SHA1的测试向量.RFC4231中有HMAC-SHA2的测试向量.

但到目前为止,我还没有在任何地方找到PBKDF2-HMAC-SHA2的测试向量.

我对SHA256最感兴趣,所以我会发布一些我用我的实现计算的向量.如果有人可以验证/确认,或者自己贡献,我会很高兴.

cryptography sha2 hmac pbkdf2

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

C++ - 在初始化类成员之前运行一个函数

我有2个资源管理类DeviceContext,OpenGLContext都是class DisplayOpenGL.资源生命周期与之相关DisplayOpenGL.初始化看起来像这样(伪代码):

DeviceContext m_device = DeviceContext(hwnd);
m_device.SetPixelFormat();
OpenGLContext m_opengl = OpenGLContext(m_device);
Run Code Online (Sandbox Code Playgroud)

问题是调用SetPixelFormat(),因为我无法在DisplayOpenGLc'tor 的初始化列表中执行此操作:

class DisplayOpenGL {
public:
    DisplayOpenGL(HWND hwnd)
    : m_device(hwnd),
      // <- Must call m_device.SetPixelFormat here ->
      m_opengl(m_device) { };
private:
    DeviceContext m_device;
    OpenGLContext m_opengl;
};
Run Code Online (Sandbox Code Playgroud)

我能看到的解决方案:

  • 插入m_dummy(m_device.SetPixelFormat())- 无法工作,因为SetPixelFormat()没有retval.(如果它有一个retval,你应该这样做吗?)
  • unique_ptr<OpenGLContext> m_opengl;而不是OpenGLContext m_opengl;.
    然后初始化为m_opengl(),在c'tor体中调用SetPixelFormat()并使用m_opengl.reset(new OpenGLContext);
  • SetPixelFormat()来自DeviceContextc'tor的 电话

哪种解决方案更可取?为什么?我错过了什么?

我在Windows上使用Visual Studio 2010 Express,如果重要的话.

编辑:我最感兴趣的是在决定使用其中一种方法时所涉及的权衡.

  • m_dummy() 不工作,即使它会显得不优雅
  • unique_ptr<X>对我来说很有意思 …

c++ constructor initialization smart-pointers initialization-list

19
推荐指数
2
解决办法
5152
查看次数

Python 3内置类型__init__不调用super().__ init__?

当从内置类型以及其他类派生时,似乎内置类型的构造函数不会调用超类构造函数.这导致__init__方法不会被调用MRO中内置之后的类型.

例:

class A:
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        print("A().__init__()")

class B(list, A):
    def __init__(self, *args, **kwargs):
        print("B().__init__() start")
        super().__init__(*args, **kwargs)
        print("B().__init__() end")

if __name__ == '__main__':
    b = B()
Run Code Online (Sandbox Code Playgroud)

在此示例中,永远不会调用A .__ init__.当B被定义为class B(A, list)相反 - 切换继承顺序 - 它按预期工作(即调用A .__ init__).

对继承顺序的这种非常微妙的依赖似乎是非pythonic的,它是这样的吗?这也意味着你必须永远不要从复杂类层次结构中的内置类型派生,因为当别人从你的类派生时(维护恐怖),你无法知道内置函数在MRO中的最终位置.我错过了什么吗?

额外信息:Python 3.1版

python constructor method-resolution-order python-3.x

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

SHA1仍然可以安全地用作PBKDF2中的哈希函数吗?

由于SHA1的加密分析取得了重大进展,因此应该逐步取消SHA2(维基百科).

然而,为了在PBKDF2中用作底层散列函数,它基本上用作PRNG.因此,使用SHA1作为PBKDF2的哈希值仍然是安全的,对吧?

hash cryptography sha1 pbkdf2

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

在Python中显示Unicode字符串的宽度

如何确定Python 3.x中Unicode字符串的显示宽度,以及是否有一种方法可以使用该信息将这些字符串与对齐str.format()

激励示例:将字符串表打印到控制台。一些字符串包含非ASCII字符。

>>> for title in d.keys():
>>>     print("{:<20} | {}".format(title, d[title]))

    zootehni-           | zooteh.
    zootekni-           | zootek.
    zoothe?que          | zooth.
    zooveterinar-       | zoovet.
    zoovetinstitut-     | zoovetinst.
    ?                   | ??

>>> s = 'e?'
>>> len(s)
    2
>>> [ord(c) for c in s]
    [101, 768]
>>> unicodedata.name(s[1])
    'COMBINING GRAVE ACCENT'
>>> s2 = '?'
>>> len(s2)
    1
Run Code Online (Sandbox Code Playgroud)

可以看出,str.format()仅将字符串(len(s))中代码点的数量作为宽度,导致输出中的列偏斜。搜索该unicodedata模块,没有发现任何建议的解决方案。

Unicode规范化可以解决è的问题,但不能解决亚洲字符(通常显示宽度更大)的问题。类似地,存在零宽度的unicode字符(例如,零宽度的空间用于允许单词内的换行符)。您无法使用规范化解决这些问题,因此请不要建议“规范化字符串”。

编辑:添加了有关规范化的信息。

编辑2:在我的原始数据集中,也有一些欧洲组合字符,即使标准化后也不会导致单个代码点:

    zwemwater     | zwemw.
    zwia?z-       | zw. …
Run Code Online (Sandbox Code Playgroud)

python string unicode width python-unicode

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

使用 perf 记录包含睡眠/阻塞时间的配置文件

我想获取我的程序的采样配置文件,其中包括阻塞时间(等待网络服务)以及 CPU 时间。

perf 的默认分析模式 ( perf record -F 99 -g -- ./binary) 对整个系统的运行时间进行采样,但没有明确说明我的程序在程序的哪些部分花费了多少时间:它偏向于 CPU 密集型部分并且不显示 IO 密集型部分。在睡眠时间分析模式与上SO节目)的睡眠时间,但没有一般的个人资料。

我想要的是一些非常简单的东西:每 10 毫秒记录一次我的程序的调用堆栈,无论它是正在运行还是当前被阻塞。然后用它制作一个火焰图

linux profiling perf

5
推荐指数
0
解决办法
1361
查看次数

散景:用于鼠标移动或单击的CustomJS回调

我想根据当前鼠标位置更新我的绘图数据.

我的目标是像交互式幂函数图,但不是从滑块中取指数,而是将指数作为鼠标光标的当前x值(在绘图坐标空间中,而不是显示坐标).

如果无法获得onMouseMove回调,onClick也可以.但是,我不想点击特定的图形(然后我可以使用TapTool),但是在图中的任何地方点击都应该足够了.

javascript python plot bokeh

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

新类型的Rethrow Python异常

我有一个NameDatabase打开sqlite文件的类.有些事情可能会出错,例如格式错误的数据库,错误的架构等.这通常会导致异常(sqlite3.Error在我的情况下).

我不想让那个例外逃过我的班级.相反,我想给调用者我自己的异常类(推理:除了NameDatabase我还有图像和GPS轨道的类,我想向呼叫者提供一个常见的异常列表来处理).

首先,这是一个好主意吗?第二,我最好怎么做呢?

我目前的代码:

class FileParseError(...): pass

class NameDatabase:
    def __init__(self, fname):
        self.fname = fname
        try:
            self.conn = sqlite3.connect(fname)
            # Check if we can query the DB and if the schema is ok.
            self.conn.execute('SELECT count(*) FROM names')
        except sqlite3.Error:
            raise FileParseError("Not a valid database: '%s'", fname)
Run Code Online (Sandbox Code Playgroud)

这有效,但给出了双回溯(在处理上述异常时,发生了另一个异常).我理想的是原始回溯,以及我自己的类型FileParseError(可以存储有关原始异常的一些信息)的例外.

我知道我可以sys.exc_info()在我的异常处理程序中使用并在外部重新引发异常,但这似乎很麻烦,因为我必须在except子句中设置一个标志以记住之后处理错误.有没有更好的办法?

exc = None
try:
    ...
except sqlite3.Error:
    exc = sys.exc_info()
if exc:
    raise FileParseError("Invalid DB '%s': %s", fname, str(exc[1])), None, …
Run Code Online (Sandbox Code Playgroud)

python exception python-3.x

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