小编Thi*_*ter的帖子

需要解释Underscore.js中的_.bindAll()函数

我一直在学习一些backbone.js,并且我已经看到了很多_.bindAll()使用过的实例.我已经阅读了整个backbone.js和underscore.js文档页面,试图了解它的作用,但我仍然非常模糊它的作用.这是下划线的解释:

_.bindAll(object, [*methodNames]) 
Run Code Online (Sandbox Code Playgroud)

在methodNames指定的对象上绑定许多方法,以便在调用它们时在该对象的上下文中运行.非常方便用于将用作事件处理程序的绑定函数,否则将使用相当无用的调用.如果没有提供methodNames,则所有对象的函数属性都将绑定到它.

var buttonView = {
  label   : 'underscore',
  onClick : function(){ alert('clicked: ' + this.label); },
  onHover : function(){ console.log('hovering: ' + this.label); }
};

_.bindAll(buttonView);

jQuery('#underscore_button').bind('click', buttonView.onClick);
=> When the button is clicked, this.label will have the correct value...
Run Code Online (Sandbox Code Playgroud)

如果你可以通过给出另一个例子或者一些口头解释来帮助这里,任何事情都会受到赞赏.我试图搜索更多的教程或示例,但是nil就是我需要的东西.大多数人似乎只知道自动做什么......

javascript backbone.js underscore.js

83
推荐指数
2
解决办法
3万
查看次数

为什么bool是int的子类?

当通过python-memcached在memcached中存储bool时,我注意到它以整数形式返回.检查库的代码向我显示有一个地方isinstance(val, int)被检查以将值标记为整数.

所以我在python shell中测试了它并注意到以下内容:

>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True
Run Code Online (Sandbox Code Playgroud)

但为什么究竟是bool一个子类int呢?

它有点意义,因为布尔值基本上是一个int,它可以只取两个值,但它需要比实际整数少得多的操作/空间(没有算术,只有一点存储空间)....

python boolean

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

Python闭包:写入父作用域中的变量

我在函数中有以下代码:

stored_blocks = {}
def replace_blocks(m):
    block = m.group(0)
    block_hash = sha1(block)
    stored_blocks[block_hash] = block
    return '{{{%s}}}' % block_hash

num_converted = 0
def convert_variables(m):
    name = m.group(1)
    num_converted += 1
    return '<%%= %s %%>' % name

fixed = MATCH_DECLARE_NEW.sub('', template)
fixed = MATCH_PYTHON_BLOCK.sub(replace_blocks, fixed)
fixed = MATCH_FORMAT.sub(convert_variables, fixed)
Run Code Online (Sandbox Code Playgroud)

添加元素stored_blocks工作正常,但我不能增加num_converted第二个子功能:

UnboundLocalError:赋值前引用的局部变量'num_converted'

我可以使用,global但全局变量是丑陋的,我真的不需要该变量是全局的.

所以我很好奇如何写入父函数范围内的变量. nonlocal num_converted可能会完成这项工作,但我需要一个适用于Python 2.x的解决方案.

python closures scope python-2.x

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

72
推荐指数
5
解决办法
19万
查看次数

在PHP中舍入到最接近的五

我想要一个php函数,当用52调用它时返回55.

我试过这个round()功能:

echo round(94, -1); // 90
Run Code Online (Sandbox Code Playgroud)

它返回90但我想要95.

谢谢.

php function rounding

57
推荐指数
3
解决办法
5万
查看次数

成功的MySQL DELETE返回什么?如何检查DELETE是否成功?

使用PHP,我试图删除一条记录,但我想检查它是否成功.成功归来的是什么DELETE FROM foo where bar = 'stuff'

或者,您是否知道检查DELETE是否成功的任何其他方法?或者我最好只是在删除它之前确保该行存在?我想尽可能避免另一个查询.

php mysql

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

杀死使用Python的subprocess.Popen()创建的进程

这是我的想法:

首先,我使用subprocess.Popen创建了一个进程

第二,经过一段时间后,我试图通过Popen.kill杀死它()

import subprocess
import os, signal
import time

proc1 = subprocess.Popen("kvm -hda /path/xp.img", shell = True)
time.sleep(2.0)
print 'proc1 = ', proc1.pid
subprocess.Popen.kill(proc1)
Run Code Online (Sandbox Code Playgroud)

但是,"proc1"仍然存在于Popen.kill()之后.任何专家都可以告诉我如何解决这个问题吗?我很感激你的考虑.

感谢所有专家的评论,我做了你所做的一切,但结果仍然保持不变.

proc1.kill() #it sill cannot kill the proc1

os.kill(proc1.pid, signal.SIGKILL) # either cannot kill the proc1
Run Code Online (Sandbox Code Playgroud)

谢谢你们.

我仍然在等待你解决这个微妙问题的宝贵经验.

python popen

51
推荐指数
4
解决办法
11万
查看次数

使用boost :: shared_ptr时有什么潜在的危险?

使用时,你有什么方法可以用脚射击自己boost::shared_ptr?换句话说,当我使用时,我必须避免哪些陷阱boost::shared_ptr

c++ boost pointers shared-ptr

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

python类中的变量范围

声明类中的变量(在函数外部):所有类函数都可以访问它(基本上是一个公共变量)

在类中的函数内声明一个变量:只有该函数可以访问它(它在该函数范围内)

在类中的函数内声明一个带有self(变量名)的变量:所有类函数都可以访问它(这与全局(变量名)有什么不同?)

并且由于没有私有/受保护,所以一切都是公共的,因此可以从课堂外访问从课堂内部访问的所有内容.

我应该知道还有其他细微差别吗,还是我几乎得到了它?

python scope

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

PHP从数字字符串中删除逗号

在PHP中,我有一个包含所有字符串的变量数组.存储的某些值是带逗号的数字字符串.

我需要的:

一种从字符串中修剪逗号的方法,只对数字字符串执行此操作.这并不像看起来那么简单.主要原因是以下失败:

$a = "1,435";

if(is_numeric($a))
    $a = str_replace(',', '', $a);
Run Code Online (Sandbox Code Playgroud)

$a = "1435"是因为数字而失败.但$a = "1,435"不是数字.因为我得到的一些字符串将是带逗号的常规句子,所以我不能在每个字符串上运行字符串替换.

php string replace numbers comma

47
推荐指数
5
解决办法
11万
查看次数