js2py 的用法
python调用js的方法
js2py的简单用法
import js2py js = """
function add(a, b) {
return a + b
}
"""
add = js2py.eval_js(js)
r = add(1, 2) + 3
print(r) >>>6
进阶用法
js = """
var a = 10;
function f(x) {
return x*x
};
"""
context = js2py.EvalJs()
context.execute(js) print(context.a) # 获取值 10
print(context.f('9', 0,)) # 获取函数并执行 81 print(context.f.toString()) # 获取函数 function f(x) { [python code] }
print(context.f.constructor) # 获取函数 'function Function() { [python code] }' # 定制属性
context.foo = [1,2,3]
context.foo.push(4)
print(context.foo.to_list()) # [1, 2, 3, 4]
运行结果
6
10
81
function f(x) { [python code] }
'function Function() { [python code] }'
[1, 2, 3, 4]
数据类型转换标
Boolean -> bool
String -> unicode
Number -> float (or int/long if whole number)
undefined -> None
null -> None
OTHER -> JsObjectWrapper
JsObjectWrapper支持:getitem,getattr,setitem,setattr,repr和
call。此外,如果要将其
转换为内置python类型,它具有to \ _list和to \ _dict方法 。
js = js2py.eval_js('d={a: 1, b: 2}')
print(js) # {'a': 1, 'b': 2}
print(type(js)) # <class 'js2py.base.JsObjectWrapper'> #该类型为字典的存储
print(js.a) # 1 # 取值方法
print(js['a']) # 1 # 取值方法
js.b = 20 # 修改属性方法
print(js) # {'a': 1, 'b': 20}
js ['c'] = 30 # 设置属性方法
print(js) # {'a': 1, 'b': 20, 'c': 30}
print(js.to_dict()) #{'a': 1, 'b': 20, 'c': 30} # 该方法转化为字典方法
js2py 的用法的更多相关文章
- EditText 基本用法
title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
- python enumerate 用法
A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...
- [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...
- 【JavaScript】innerHTML、innerText和outerHTML的用法区别
用法: <div id="test"> <span style="color:red">test1</span> tes ...
- chattr用法
[root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...
- 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)
vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...
随机推荐
- 微软.net installer源码解析
微软源码地址 dotnet/install-scripts/blob/master/src/dotnet-install.ps1 代码 [string]$AzureFeed="htt ...
- python xmind转Excel(puppet洛洛原创)
需求:将xmind文件转为Excel文件,并添加UI界面操作以降低操作难度. 这个需求一句话就讲清楚了,但实际上还需要做很多工作: 1,了解Xmind文件结构 2,提取Xmind文件分支内容(重点) ...
- 数组和list 相互转换中遇到的坑
代码示例: public class ArrayDemo { public static void main(String[] args) { Integer[] arr = {1, 2, 3, 4, ...
- netfilter 的扩展功能
目前内核已经有filter 功能,但是往往实际运用中需要用到一些定制的filter 功能, 所以这个时候仅仅依靠现有的不能完成,于是就出现了conntrack的扩展功能, 最直接的就是tftp he ...
- 《GNU_makefile》第五章——为规则书写命令
1. 使用make的命令行参数-n或--just-print,make会只显示要执行的命令,不执行,这样方便调试makefile. 2.执行命令 每写一行命令,make会fork出一个shell进程来 ...
- TypeError: Cannot read property 'Component' of undefined
继续跟着阮一峰的教程走,下面写到PropTypes的getDefaultProps时,又出现了问题,基于上一个createClass的报错换成了Component写法 错误描述: 解决方法:引入rea ...
- 《HarmonyOS设备开发入门手册》
HarmonyOS设备开发入门手册-更新 [欢迎大家点击下载] 作者:连志安 想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://harmonyos.51cto. ...
- 支持jewel版本的calamari
之前测试了下,发现calamari不支持jewel版本的,是因为接口了有了一些变化,在提出这个问题后,作者给出了回答,说肯定会支持的,并且做了一点小的改动,就可以支持了,这个作者merge了到了git ...
- python菜鸟教程学习4:基本数据类型
变量:python中的变量不需要声明,但在使用前都必须要赋值,变量赋值之后才会被创建 在python中变量是没有类型的,所有的数据类型是对内存中对象的类型. 赋值:使用等号=来给变量赋值 python ...
- classmethod、staticclassmethod内置装饰器函数
# method 英文是方法的意思 # classmethod 类方法 # 当一个类中的方法中只涉及操作类的静态属性时,此时在逻辑上,我们想要直接通过类名就可以调用这个方法去修改类的静态属性,此时可以 ...