我最接近Python的repr的是这样的:
function User(name, password){
this.name = name;
this.password = password;
}
User.prototype.toString = function(){
return this.name;
};
var user = new User('example', 'password');
console.log(user.toString()) // but user.name would be even shorter
Run Code Online (Sandbox Code Playgroud)
有没有办法在object默认情况下将字符表示为字符串?或者我将不得不object.variable用来获得我想要的结果?
我试图弄清楚如何制作一个在python中取消的setInterval而不需要创建一个完整的新类,我想出了如何但现在我想知道是否有更好的方法来做到这一点.
下面的代码似乎工作正常,但我没有彻底测试它.
import threading
def setInterval(func, sec):
def inner():
while function.isAlive():
func()
time.sleep(sec)
function = type("setInterval", (), {}) # not really a function I guess
function.isAlive = lambda: function.vars["isAlive"]
function.vars = {"isAlive": True}
function.cancel = lambda: function.vars.update({"isAlive": False})
thread = threading.Timer(sec, inner)
thread.setDaemon(True)
thread.start()
return function
interval = setInterval(lambda: print("Hello, World"), 60) # will print Hello, World every 60 seconds
# 3 minutes later
interval.cancel() # it will stop printing Hello, World
Run Code Online (Sandbox Code Playgroud)
有没有办法在不创建继承threading.Thread或使用的专用类的情况下执行上述操作type("setInterval", (), {}) …
对于nodejs/javascript有什么类似pythons list comprehension的东西吗?如果没有则可以制作具有类似行为的函数
# Example 1
list_one = [[1, 2], [3, 4], [5, 6], [7, 8]]
someOfList = sum(x[1] for x in list_one)
print(someOfList) # prints 20
# Example 2
combined = "".join([str( ( int(x) + int(y) ) % 10) for x, y in zip("9999", "3333")])
print(combined) # prints 2222
Run Code Online (Sandbox Code Playgroud)
等等?或者你是否必须为每一种理解行为做出行为?我知道你可以为每个人制作函数,但是如果你使用很多列表推导代码可以变长
是否有一个列表的方法来执行python 2的list.__delslice__功能?有一个,__delitem__但它似乎只删除一个项目而不是从x到y,所以这里是我想要做的一个例子
somelist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
somelist.__delslice__(4, len(somelist))
print(somelist)
# output: [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
看起来他们可能已经从python 3中删除了它,是吗?如果没有它现在叫什么或有一个模块有它?