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",我在无意中发现了它们所具有的相同的一些用法,先举 ...
随机推荐
- C语言实现天气信息管理系统
这篇文章主要介绍了C语言实现天气信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了C语言实现天气信息管理系统的具体代码,供大家参考,具体内 ...
- 探索RocketMQ的重复消费和乱序问题
前言 在之前的MQ专题中,我们已经解决了消息中间件的一大难题,消息丢失问题. 但MQ在实际应用中不是说保证消息不丢失就万无一失了,它还有两个令人头疼的问题:重复消费和乱序. 今天我们就来聊一聊这两个常 ...
- sqlserver with(NOLOCK) 或 with(READPAST)
https://blog.csdn.net/shuicaohui5/article/details/6758868
- 强迫自己学习Jquery三
元素定位问题 offset 和 position必须要好好看一下,
- string.contains()
public class test { public static void main(String[] args){ System.out.println("abcde".con ...
- prometheus监控golang服务实践
一.prometheus基本原理介绍 prometheus是基于metric采样的监控,可以自定义监控指标,如:服务每秒请求数.请求失败数.请求执行时间等,每经过一个时间间隔,数据都会从运行的服务中流 ...
- Python学习笔记4:函数
1.函数 函数就是一段具有特点功能的.可重用的语句组. 在Python中函数是以关键词 def 开头,空格之后连接函数名和圆括号(),最后一个冒号:结尾. 函数名只能包含字符串.下划线和数字且不能以数 ...
- 深入 理解char * ,char ** ,char a[ ] ,char *a[] 的区别(转)
C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了许多指针和数组的迷惑,因此,刻意再次深入探究了指针和数组这玩意儿,其他类型的数组比较简单,容易混淆的是字符数组和字符指针这两个 ...
- @AliasFor注解
@AliasFor注解 @AliasFor是一个注解,用于为注解属性声明别名. 代码如下:它有两个属性value和attribute @AliasFor注解注释了 自身,并且value和attribu ...
- switch,case语句易误区
switch case 语句语法格式如下: switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可 ...