我正在使用 PyV8,我想用 undefined
调用一个 javascript 函数。似乎评估 undefined
和 null
返回 Python 的 None
值:
>>> evaljs("undefined")
None
>>> evaljs("null")
None
当然,问题在于它们在 javascript 中并不相同:
>>> evaljs("undefined === null")
False
False
>>> evaljs("undefined") == evaljs("null")
None
None
True
有什么好的方法可以做到这一点吗?实际上,我想编写一个可从 javascript 调用的 Python 函数,它在某些情况下返回 undefined
,在其他情况下返回 null
。
编辑SSCCE -性:
import PyV8
context = PyV8.JSContext()
def evaljs(s):
with context:
res = context.eval(s)
print res
return res
最佳答案
如您所见:null object in Python? , 没有 null
或 undefined
在 Python 中,只是 None
...所以你只能代表 undefined
和 null
来自 JavaScript 作为 None
在 Python 中。 JavaScript 出于自身原因对两者进行了区分,据我自己的经验,“未定义”对于 JavaScript 来说是相当独特的。
我唯一能想到的就是深入研究源代码,看看 JavaScript v8 引擎是如何跟踪 undefined 和 null 的,并在评估带有 null 或 undefined 结果的 JavaScript 语句时尝试让该对象返回。 .. 但这是一项艰巨的任务。
关于javascript - 使用 PyV8 从 Python 函数返回 `undefined`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16995108/