Jython** ** - WordPress.com

Download Report

Transcript Jython** ** - WordPress.com

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Jython简介
Jython类型
Jython面向对象与面向函数
Jython运算符
Jython条件与异常控制
与Java的关系和相互调用
Jython线程
Jython注解
Jython集合操作
内省
Jython开发环境搭建
Jython简介
 Jython是一种完整的语言,而不是一个Java翻译器或
仅仅是一个Python编译器,它是一个Python语言在
Java中的完全实现。 Jython也有很多从CPython中继
承的模块库。最有趣的事情是Jython不像CPython或
其他任何高级语言,它提供了对其实现语言的一切存
取。所以Jython不仅给你提供了Python的库,同时也
提供了所有的Java类。这使其有一个巨大的资源库。
Jython类型













数字值(int, float, long, complex)

1, 1.0, 1L, 1+1J
Boolean型(bool)

Flase, True
字符串(str)

“Oh my lady gaga, Jython!”, ‘Oh my lady gaga, Jython!’
列表(list)

[1, ‘abc’, 1j, 1.0, 1L]
字典(dict)

{‘message’:’hello’}
元组(tuple)

(1,2), (1,), ()
空(None)

None
类型(type)

type(‘’)
类(class)

class T:pass; type(T) # classobj
实例(instance)

t=T(); type(t) #instance
函数(function)

def test():pass; type(test) #function
成员方法(instancemethod)

class T: def test(self):pass; type(T.test) # instancemethod
注意: Flase=[], {}, (), ‘’, 0, 0.0, 0L, 0J, None
Jython类型(Code)
classobj:类
instancemethod:成员方法
instance:实例
function:函数
systemstate:系统状态
javapackage:Java包
module:模块
Jython面向对象与面向函数
 类(支持多重继承)
 方法


构造方法( __init__(self,…) )
成员方法(默认参数、不定参数、键值参数)
 变量
成员变量
 类变量
 局部变量
 函数(默认参数、不定参数、键值参数)

注意:
继承多个Jython类,但只能直接或间接继承一个Java类。子类的 __init__ 方法必须显示调用
其父类定义的所有 __init__ 方法
Jython语法(Code)
doc写在类,方法下面
默认参数
成员变量
覆盖str方法,在str()时执行
Jython语法(Code)
不定参数 *v
键值参数 **v
直接访问对象属性
调用不定参数方法
键值参数调用
Jython运算符
 四则运算符:
 + - * / % ** += -= *= /= %= **=
 位运算符
 ~ | & ^ >> << |= &= >>= <<= ^=
 逻辑运算符
 and or not is in
 赋值运算符
 =
优先级(由高到低)
Jython运算符(Code)
整除
id(): 取对象id
Id相同
元组是不允许改变内容的,Id不同
格式化字符串
幂
字符串运算
Jython条件与异常控制
 if else elif for while break continue try finally
 except 捕捉异常
 raise 抛出异常
 pass 空语句
Jython条件与异常控制(Code)
for …. else, break不会执行else
Jython条件与异常控制(Code)
 Jython异常不是java.lang.Throwable的子类
运行结果:
与Java的关系和相互调用
 Jython在JVM执行
 Jython是在JVM中执行的解释型语言
 与Java相互调用
 常用类型的对应关系
与Java的关系和相互调用(Code)
 与Java相互调用
Java中调用Jython
Jython中调用Java
与Java的关系和相互调用(Code)
 常用类型的对应关系
Jython线程
 线程的创建
 使用Java中的线程
 Jython中的线程
 同步
 Jython中同步对象
 Jython中同步方法
 Jython线程的控制
 Jython中threading模块
Jython线程(Code)
 线程的创建
 使用Java中的线程
Jython线程(Code)
 线程的创建
 使用Jython中的线程
Jython线程(Code)
 同步
 同步对象
同步stdout对象
Jython线程(Code)
 同步
 同步方法
执行结果:
Jython线程(Code)
 关于同步方法的同步对象
执行结果:
Jython线程(Code)
 线程控制
 thread.exit(), sys.exit()
 两者都有结束线程的作用,
 如果在是子线程中执行则只退出子线程
 如果是在主线程里执行,会导致整个应用程序退出
 注:这里使用的是thread模块
 使用threading模块可以避免这个问题
 应当少使用thread模块
Jython中threading模块
对象
描述
Thread
表示一个线程执行的对象
Lock
锁原语
RLock
可重入锁
Condition
条件变量对象能让一个线程停下来,等
待其他线程满足了某个条件,再执行
Event
通用的条件变量.多个线程可以等待某
个事件发生,在事件发生后,所有线程都
会都激活
Timer
定时器
Jython中threading模块(Code)
执行结果:
Jython注解
 注解定义
 注解使用
 AOP
Jython注解(Code)
remoteInvoke(invokeUMS)(url,xml)
执行结果:
Jython集合操作
del不产生新的对象,其它的操作均返回新的对象,原数据不变
对于元组(tuple)不能使用del操作,其它同上
Jython集合操作
内省
内省
注意:
只要全局变量没有被局部地重新绑定,那么在没有将其声明为全局的情况下,
就可读取该变量。因此,只有在对全局变量赋值时才需要 global 语句。
Jython开发环境搭建
 Eclipse + PyDev + Jython2.5.1 + JDK1.6
1.
2.
3.
4.
5.
6.
字符串方法
列表方法
映射方法
内置函数
Jython库汇总
格式化字符串
字符串方法
字符串方法
列表方法
映射方法
内置函数
内置函数
内置函数
内置函数
Jython库汇总
Jython库汇总
Jython库汇总
Jython库汇总
Jython库汇总
格式化字符串
参考
 Python核心编程(第二版)
 Jython程序设计
 http://www.ibm.com/developerworks/cn/education/java/j
-jython2/section2.html