我正在使用PyV8,并且我想用undefined调用一个javascript函数。似乎同时计算undefined和null都会返回Python值:
>>> evaljs("undefined")
None
>>> evaljs("null")
None当然,问题在于它们在javascript中是不一样的:
>>> evaljs("undefined === null")
False
False
>>> evaljs("undefined") == evaljs("null")
None
None
True有没有什么好的方法可以这样做呢?实际上,我想写一个Python函数,可从javascript调用,它在某些情况下返回undefined,在其他情况下返回null。
为SSCCE-ness编辑:
import PyV8
context = PyV8.JSContext()
def evaljs(s):
with context:
res = context.eval(s)
print res
return res发布于 2013-08-08 03:30:58
答案是:在当前版本中,没有办法做到这一点。
发布于 2013-06-09 21:08:27
正如你在这里看到的:null object in Python?,Python语言中没有null或undefined,只有None...因此,您只能将JavaScript中的undefined和null表示为Python语言中的None。JavaScript将两者区分开来有其自身的原因,而且,据我自己的经验所知,“未定义”是JavaScript独有的。
我唯一能想到的就是深入到源代码中,看看在JavaScript v8引擎中是如何跟踪未定义和null的,并在计算具有null或未定义结果的JavaScript语句时尝试返回该对象……但这是一项相当艰巨的任务。
https://stackoverflow.com/questions/16995108
复制相似问题