javascript - 使用 PyV8 从 Python 函数返回 `undefined`?

标签 javascript python undefined v8 pyv8

我正在使用 PyV8,我想用 undefined 调用一个 javascript 函数。似乎评估 undefinednull 返回 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? , 没有 nullundefined在 Python 中,只是 None ...所以你只能代表 undefinednull来自 JavaScript 作为 None在 Python 中。 JavaScript 出于自身原因对两者进行了区分,据我自己的经验,“未定义”对于 JavaScript 来说是相当独特的。

我唯一能想到的就是深入研究源代码,看看 JavaScript v8 引擎是如何跟踪 undefined 和 null 的,并在评估带有 null 或 undefined 结果的 JavaScript 语句时尝试让该对象返回。 .. 但这是一项艰巨的任务。

关于javascript - 使用 PyV8 从 Python 函数返回 `undefined`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16995108/

相关文章:

javascript - Angular typescript ,无法推送到数组。不明确的

ios - Phonegap:在iOS上未定义window.device

javascript - yql 弄乱了检索到的内容

python - 对数据框中的值求平方时保留符号

python - 如何调用名称与数字分隔的函数?从 t1 到 t20 调用函数的示例 - Python?

python - 使用嵌套列表打印 5x5 数字

javascript - 使用简单反射代理的流行 'vaccumCleaner' 玩具问题解决方案

javascript - 在 Google Maps API V3 中仅显示一个 InfoBubble

javascript - ThreeJS 加载屏幕

javascript - Vue.js - 如何将数据传递到另一条路线?