我们假设我有一个bash脚本,我称之为:
bash -c "some_command"
do something with code of some_command here
Run Code Online (Sandbox Code Playgroud)
是否有可能获得代码some_command?我不是some_command直接在运行脚本的shell中执行,因为我不想改变它的环境.
我喜欢Python,但我不想仅仅为了从元素中获取属性而编写10行.也许这只是我,但minidom不是那样mini.为了使用它解析一些东西,我必须编写的代码看起来很像Java代码.
还有更多的东西user-friendly吗?有重载运算符的东西,它将元素映射到对象?
我希望能够访问:
<root>
<node value="30">text</node>
</root>
Run Code Online (Sandbox Code Playgroud)
像这样的事情:
obj = parse(xml_string)
print obj.node.value
Run Code Online (Sandbox Code Playgroud)
并没有使用getChildren或其他类似的方法.
我知道你可以创建一个匿名函数,让编译器推断它的返回类型:
val x = () => { System.currentTimeMillis }
Run Code Online (Sandbox Code Playgroud)
仅为了静态类型,是否可以指定其返回类型?我认为这会让事情变得更加清晰.
我正在尝试创建一个具有唯一用户名的用户模型.这是它的代码:
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var UserSchema = new Schema({
username: String,
password: String,
});
UserSchema.virtual("password_confirmation").get(function() {
return this.pw_conf;
}).set(function(value) {
this.pw_conf = value;
});
UserSchema.path("username").required(true);
UserSchema.path("password").required(true);
UserSchema.pre("save",function(next, done) {
var self = this;
mongoose.models["User"].findOne({username : self.username},function(err, user) {
if(user) {
self.invalidate("user","username must be unique");
}
done();
});
next();
});
UserSchema.pre("save",function(next) {
if(this.pw_conf !== this.password) {
next(new Error("Must specify the password confirmation"));
}
else {
next();
}
});
module.exports = mongoose.model("User",UserSchema);
Run Code Online (Sandbox Code Playgroud)
我也在测试是否有独特性:
var User = require("./users"), …Run Code Online (Sandbox Code Playgroud) 我喜欢能够修改发送到函数的参数,使用settrace,如:
import sys
def trace_func(frame,event,arg):
value = frame.f_locals["a"]
if value % 2 == 0:
value += 1
frame.f_locals["a"] = value
def f(a):
print a
if __name__ == "__main__":
sys.settrace(trace_func)
for i in range(0,5):
f(i)
Run Code Online (Sandbox Code Playgroud)
这将打印:
1
1
3
3
5
Run Code Online (Sandbox Code Playgroud)
你还可以使用其他很酷的东西settrace吗?
为什么不可能有这个:
def main(args:Array[String]) {
val whatever:String // Have it uninitialized here
if(someCondition) {
whatever = "final value" // Initialize it here
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这不合法.我知道我可以做到var,但为什么我们必须val在我们宣布它时准确地初始化它?以后能够初始化它似乎更合乎逻辑吗?
我正在使用JBuilder来返回一些JSON.我有一个index.json.jbuilder生成数据,我需要将其渲染为字符串.但是,我不知道如何做到这一点,因为:@my_object.to_json并且@my_object.as_json似乎没有通过JBuilder.
我怎么能将JBuilder视图渲染为字符串?
我有这个代码:
>>> class G:
... def __init__(self):
... self.x = 20
...
>>> gg = G()
>>> gg.x
20
>>> gg.y = 2000
Run Code Online (Sandbox Code Playgroud)
这段代码:
>>> from datetime import datetime
>>> my_obj = datetime.now()
>>> my_obj.interesting = 1
*** AttributeError: 'datetime.datetime' object has no attribute 'interesting'
Run Code Online (Sandbox Code Playgroud)
根据我的Python知识,我会说datetime覆盖setattr/ getattr,但我不确定.你能在这里说清楚吗?
编辑:我不是特别感兴趣datetime.我总是想知道对象.
如果我有这个:
def array = [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)
是否有一些内置允许我这样做(或类似的东西):
array.split(2)
Run Code Online (Sandbox Code Playgroud)
得到:
[[1,2],[3,4],[5,6]]
Run Code Online (Sandbox Code Playgroud)
?