小编Cua*_*due的帖子

在Javascript中的字典理解,或对象`map`

我需要从Javascript中的列表生成几个对象.在Python中,我写这个:

{key_maker(x): val_maker(x) for x in a_list}
Run Code Online (Sandbox Code Playgroud)

另一种问题是,是否存在jQuery.map()聚合对象?这是我的猜测(不起作用):

var result = {}
$.map(a_list, function(x) {
    $.extend(result, {key_maker(x): val_maker(x)})
})
Run Code Online (Sandbox Code Playgroud)

javascript python jquery

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

什么是黄金描述的C++"关键功能"?

请不要回答"如何解决此错误消息?"的问题.

在gold提供的错误消息中:

/usr/bin/ld.gold: the vtable symbol may be undefined
because the class is missing its key function
Run Code Online (Sandbox Code Playgroud)

什么是key function?我在该部分下的功能属性GCC手册页中找到了对它的引用dllimport.相关文字如下:

在SH Symbian OS目标上,dllimport属性还有另一种影响(原文如此) - 它可以导致类的vtable和运行时类型信息被导出.当类具有dllimport'ed构造函数或非内联非纯虚函数时会发生这种情况,并且对于这两个条件中的任何一个,该类还具有内联构造函数或析构函数,并且具有在现翻译单位.

从中我可以看出,在某些条件下dllimport,在Symbian OS上使用属性时,有一些与构造函数或析构函数不同的函数.有意思,但我正在为Linux上的Linux编译,并且grep -r dllimport什么也没透露.所以这一段不适用.

(FWIW问题来自(在这种情况下)来自未定义的析构函数,但是文档和链接器的输出都非常痛苦地区分"关键函数"和析构函数.对于其他类型的缺失符号,链接器拼写缺少符号的名称.)

那么,key function 真的什么

c++ gcc ld

31
推荐指数
2
解决办法
6730
查看次数

Python比较运算符<和>如何使用函数名作为操作数?

抛出这个问题(在Python 2.7.5中)有一点错字:

def foo(): return 3
if foo > 8:
    launch_the_nukes()
Run Code Online (Sandbox Code Playgroud)

当它,我不小心爆炸了月亮.

我的理解是,E > F相当于(E).__gt__(F)和表现良好的类(如内置)相当于(F).__lt__(E).

如果没有__lt____gt__运营商那么我认为Python使用__cmp__.

但是,这些方法都与工作function对象,而<>运营商的工作.引擎盖下发生了什么?

>>> foo > 9e9
True
>>> (foo).__gt__(9e9)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'function' object has no attribute '__gt__'
>>> (9e9).__lt__(foo)
NotImplemented
Run Code Online (Sandbox Code Playgroud)

python

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

将NominalDiffTime转换为Real

Data.Time.Clock的文档中,我看到:

转换函数会将其视为秒.它的精度为10 ^ -12 s

什么功能会把它NominalDiffTime变成一个Double?没有运气哄骗它

haskell

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

在Tornado中,如何在PeriodicCallback调用的协程中看到异常?

我写了一个程序,它有一个定期从主要调用的协程,ioloop如下所示:

from tornado import ioloop, web, gen, log
tornado.log.enable_pretty_printing()
import logging; logging.basicConfig()

@gen.coroutine
def callback():
    print 'get ready for an error...'
    raise Exception()
    result = yield gen.Task(my_async_func)

l = ioloop.IOLoop.instance()
cb = ioloop.PeriodicCallback(callback, 1000, io_loop=l)
cb.start
l.start()
Run Code Online (Sandbox Code Playgroud)

我得到的输出很简单:

$ python2 app.py
get ready for an error...
get ready for an error...
get ready for an error...
get ready for an error...
Run Code Online (Sandbox Code Playgroud)

raise Exception()是默默无视的!如果我将回调改为公正

def callback():
    print 'get ready for an error...'
    raise Exception()
Run Code Online (Sandbox Code Playgroud)

我得到了完整的堆栈跟踪,就像我期望的那样(并且需要).如何在使用协程时获得堆栈跟踪?

python asynchronous tornado

13
推荐指数
2
解决办法
5863
查看次数

我可以明确关闭ctypes CDLL吗?

我有一个Python 2.7 GUI用于与C库交互.我在GUI中做了一堆设置,然后按"go"按钮.然后,我正在查看结果,不再需要库代码.但我想在更改库时保持所有GUI状态.

我导入sodll使用ctypes,显然打开文件进行阅读.但是,我想显式关闭该文件,以便重新编译并覆盖它.然后,当我再次按下"go"按钮时,我想导入新版本.

在最糟糕的情况下,我可以将文件复制到一个tempfile.NamedTemporaryFile,但后来我有几十个文件的句柄,没有一个我可以清理.

我可以以某种方式显式关闭文件句柄吗?或者,我可以将文件的内容读入StringIO对象并以某种方式指向该对象ctypes吗?

python ctypes

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

在bash中重定向stdout和stderr的正确方法是什么?

这是我正在努力完成的具体任务.zsh的行为方式我喜欢

$ zsh
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
clang
$ which doesntexist > /dev/null 2&>1 && echo doesntexist || echo gcc
gcc
Run Code Online (Sandbox Code Playgroud)

但是,在bash中:

$ bash
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
gcc
Run Code Online (Sandbox Code Playgroud)

这是一般情况:

$ which clang > /dev/null 2&>1; echo $?
1
$ which clang; echo $?
/usr/bin/clang
0
Run Code Online (Sandbox Code Playgroud)

我如何重定向输出有问题.什么是正确的方法?

bash zsh

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

正确的方法来清理Python服务 - atexit,signal,try/finally

我在Debian上运行了一个单线程Python 2.7守护进程/服务.我有一些禁用某些硬件功能的关键清理代码.

import sys
import atexit
import signal
from my_job import give_high_fives
from my_cleanup import prevent_the_apocalypse

atexit.register(prevent_the_apocalypse)
signal.signal(signal.SIGTERM, prevent_the_apocalypse)
signal.signal(signal.SIGHUP, prevent_the_apocalypse)
try:
    while True:
        give_high_fives()
finally:
    prevent_the_apocalypse()
Run Code Online (Sandbox Code Playgroud)

这看起来很偏执,我也不喜欢多次调用清理代码.现在它看起来像清理被称为3或4次SIGTERM.

prevent_the_apocalypse在所有可能的退出条件下,有一种方法可以完全一次吗?

python daemon

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

什么是在生成器内部时触发上下文管理器的__exit__?

我正在制作像使用生成器作为协程的任务调度程序.在下面的代码中,我需要print cleanup确定性地执行.

从我的交互看来,将对象释放到垃圾收集器会导致上下文管理器退出.但是,我知道最好不要依赖GC的时间.它真的是GC调用__exit__它还是另一种机制?

我怎么能严格强迫print 'cleanup'

>>> from contextlib import contextmanager
>>> @contextmanager
... def foo():
...     print 'setup'
...     try:
...         yield
...     finally:
...         print 'cleanup'
... 
>>> def bar():
...     with foo():
...         while True:
...             yield 'bar'
... 
>>> b = bar()
>>> b.next()
setup
'bar'
>>> b = None
cleanup
Run Code Online (Sandbox Code Playgroud)

python garbage-collection generator contextmanager

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

对于缺乏堆栈或内存分配*的架构*,最具表现力的编程语言是什么?

我在一个拥有几个字节的空闲RAM的专有音序器上工作; 静态分配几百个字节; 8个寄存器,包括PC; 没有间接(在C中,一个"指针"); 没有堆栈.

没有MOV指令:要M进入K,你必须编写CLX A; ORX M; STX K哪些复杂的依赖解决方案,或至少是优化.许多操作仅适用于特定寄存器:例如,32位右移用于K高位字和M低位字.

所以对我来说,嵌入式应用程序的C选择显而易见,因为没有指针或函数调用是可能的.大多数高级编程语言都有算术表达式,因此这无助于缩小我们的选择范围.

最重要的是绝对最小代码大小,因此优化是关键.

我倾向于将Lisp表达式编译为宏汇编程序的一种形式,因为程序员可以优化自己的高级操作,例如编写XOR指令.

我敢肯定,这不是第一个有这些限制的项目; 过去如何解决这个问题?

compiler-construction embedded abstract-syntax-tree

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

Haskell:类似于"do"符号的应用程序`$`运算符?

我正在为idleCallback这个表示法提供一个函数:

idleCallback $= Just (do
    modifyIORef world play
    postRedisplay Nothing)
Run Code Online (Sandbox Code Playgroud)

为什么这个(看似相似)符号不起作用?

idleCallback $= Just $ do
    modifyIORef world play
    postRedisplay Nothing
Run Code Online (Sandbox Code Playgroud)

为了节省你的胡扯,类型是:

($=) :: HasSetter s => s a -> a -> IO ()
type IdleCallback = IO ()
data SettableStateVar a 
idleCallback :: SettableStateVar (Maybe IdleCallback)
postRedisplay :: Maybe Window -> IO ()
modifyIORef :: IORef a -> (a -> a) -> IO ()
Run Code Online (Sandbox Code Playgroud)

GHC说:

Couldn't match expected type `Maybe IdleCallback'
            with actual type `a0 -> Maybe …
Run Code Online (Sandbox Code Playgroud)

haskell

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

用C++编写Socket.IO服务器

我想编写一个使用与Socket.IO相同的有线格式的C++服务器.我找到gevent-socketio线路的数据包编解码器,但我找不到相应的客户端编解码器.

数据包的编码方式如下: 5:1+::{"name": "tobi"}

socket.io-protocol#Packet似乎并没有指定有线格式和标识似乎并没有与那些使用匹配gevent-socketio.

有明确的电线格式吗?是否有可能编写一个Socket.IO兼容的服务器,可能是一些固定版本的协议,具有固定/已知的客户端库?

c++ node.js socket.io

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

Javascript中的评估顺序是顺序的吗?

在求职面试中,我很难听到"javascript可以无序地评估陈述".这到底是什么程度的?我可以想象一百种方法来明确地无序地评估语句 - 例如在分时操作系统中.但他似乎在说,如果我评估

console.log('a')
console.log('b')
Run Code Online (Sandbox Code Playgroud)

Javascript规范以某种方式不要求输出a首先b.我可以想象,如果语句在功能上是纯粹的,即没有副作用,但副作用必须始终按顺序发生,那么评估者可能会尝试评估第二个语句,如果第一个语句的IO是阻塞的,是否正确?当然,IO是一个很大的副作用.

规范兼容的Javascript在多大程度上可以无序评估?或者这是一个误传的情况?

javascript

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