我一直在学习一些backbone.js,并且我已经看到了很多_.bindAll()使用过的实例.我已经阅读了整个backbone.js和underscore.js文档页面,试图了解它的作用,但我仍然非常模糊它的作用.这是下划线的解释:
Run Code Online (Sandbox Code Playgroud)_.bindAll(object, [*methodNames])在methodNames指定的对象上绑定许多方法,以便在调用它们时在该对象的上下文中运行.非常方便用于将用作事件处理程序的绑定函数,否则将使用相当无用的调用.如果没有提供methodNames,则所有对象的函数属性都将绑定到它.
Run Code Online (Sandbox Code Playgroud)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...
如果你可以通过给出另一个例子或者一些口头解释来帮助这里,任何事情都会受到赞赏.我试图搜索更多的教程或示例,但是nil就是我需要的东西.大多数人似乎只知道自动做什么......
当通过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,它可以只取两个值,但它需要比实际整数少得多的操作/空间(没有算术,只有一点存储空间)....
我在函数中有以下代码:
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的解决方案.
http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.google.com
如何自定义文本和图像.看起来Facebook拉动了文档.
我想要一个php函数,当用52调用它时返回55.
我试过这个round()功能:
echo round(94, -1); // 90
Run Code Online (Sandbox Code Playgroud)
它返回90但我想要95.
谢谢.
使用PHP,我试图删除一条记录,但我想检查它是否成功.成功归来的是什么DELETE FROM foo where bar = 'stuff'?
或者,您是否知道检查DELETE是否成功的任何其他方法?或者我最好只是在删除它之前确保该行存在?我想尽可能避免另一个查询.
这是我的想法:
首先,我使用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)
谢谢你们.
我仍然在等待你解决这个微妙问题的宝贵经验.
使用时,你有什么方法可以用脚射击自己boost::shared_ptr?换句话说,当我使用时,我必须避免哪些陷阱boost::shared_ptr?
声明类中的变量(在函数外部):所有类函数都可以访问它(基本上是一个公共变量)
在类中的函数内声明一个变量:只有该函数可以访问它(它在该函数范围内)
在类中的函数内声明一个带有self(变量名)的变量:所有类函数都可以访问它(这与全局(变量名)有什么不同?)
并且由于没有私有/受保护,所以一切都是公共的,因此可以从课堂外访问从课堂内部访问的所有内容.
我应该知道还有其他细微差别吗,还是我几乎得到了它?
在PHP中,我有一个包含所有字符串的变量数组.存储的某些值是带逗号的数字字符串.
我需要的:
一种从字符串中修剪逗号的方法,只对数字字符串执行此操作.这并不像看起来那么简单.主要原因是以下失败:
$a = "1,435";
if(is_numeric($a))
$a = str_replace(',', '', $a);
Run Code Online (Sandbox Code Playgroud)
这$a = "1435"是因为数字而失败.但$a = "1,435"不是数字.因为我得到的一些字符串将是带逗号的常规句子,所以我不能在每个字符串上运行字符串替换.