在一些__init__.py模块文件中,我看到了这样的单行:
__import__('pkg_resources').declare_namespace(__name__)
Run Code Online (Sandbox Code Playgroud)
它做了什么以及为什么人们使用它?假设它与在运行时动态导入和创建命名空间有关.
我需要帮助来理解一些承诺逻辑.这是我想要实现的目标 - 使用jQuery我获取请求,然后我用我的承诺链接它进行一些检查,我的代码:
http://jsbin.com/UVEpurU/1/edit
function checkInfoPromise(r) {
var ok = true,
promise = Ember.RSVP.Promise(function(resolve, reject) {
if(ok) {
return resolve(r);
}
else {
return reject(r);
}
});
return promise;
}
var requestPromise = $.get('/')
.then(function(r){
return checkInfoPromise(r);
});
requestPromise.then(function(r) {
console.log(r);
}).fail(function(r) {
console.log('fail');
});
Run Code Online (Sandbox Code Playgroud)
并且它不能像我期望的那样工作.文档说他们应该互相合作,但他们没有,或者我的代码不正确.
与jQuery + jQuery相同的逻辑工作正常:
http://jsbin.com/AYeyaxO/1/edit
而Ember + Ember的作品:
更改__name__对象的属性值是否正确,如下例所示:
>>>
>>> def f(): pass
...
>>> f.__name__
'f'
>>> b = f
>>> b.__name__
'f'
>>> b.__name__ = 'b'
>>> b
<function b at 0x0000000002379278>
>>> b.__name__
'b'
>>>
Run Code Online (Sandbox Code Playgroud) 我有这个代码,借用检查器显示错误:
fn f1(v: &str) {
}
fn main() {
let c = |v| f1(v);
for _ in 0..1 {
let s = String::new();
c(&s);
}
}
Run Code Online (Sandbox Code Playgroud)
|
10 | c(&s);
| - ^^ borrowed value does not live long enough
| |
| borrow later used here
11 | }
| - `s` dropped here while still borrowed
Run Code Online (Sandbox Code Playgroud)
但是如果我向闭包添加显式类型,代码会编译 let c = |v: &str| f1(v);
有人可以解释为什么它在第二种情况下有效而不是在第一种情况下有效,因为我理解 rust 在第一个例子中正确推断出相同的类型(因为如果我在循环外运行闭包,它会起作用)?
我在Perl中有这个代码:
sub f {
return [1,2,3]
}
print f;
Run Code Online (Sandbox Code Playgroud)
该函数f返回对数组的引用,如何在没有附加变量的情况下将返回值转换为数组,就像这里一样?
sub f {
return [1,2,3]
}
$a = f;
print @$a;
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
>>> def f(v=1):
... def ff():
... print v
... v = 2
... ff()
...
>>> f()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in f
File "<stdin>", line 3, in ff
UnboundLocalError: local variable 'v' referenced before assignment
Run Code Online (Sandbox Code Playgroud)
我确实理解为什么会出现这个消息(Python变量范围问题),但v在这种情况下如何使用变量呢?global v在这种情况下不起作用.