在代码中深入学习Jython语法
创始人
2024-04-15 05:10:22
0

为了更多的了解Jython语法和结构,下面通过分析几个简单然而完整的工作程序进行学习。首先是经典的示例程序——Hello World!——它在Jython中如下所示:

清单 1. Jython的Hello World!

  1. print "Hello World!" 

在Jython语法中(就像在Python 中),源文件使用扩展名“ py”。“Hello World”语句放在 hello.py 之类的源文件中时,就是一个完整的程序。

作为比较,看一下等效的Java 程序,看看下面的hello.java 文件:

清单 2. Java的Hello World!

  1. public class hello {  
  2.     public static void main(String[] args) {  
  3.         System.out.println("Hello World!");  
  4.     }  

Jython语法显然格式更简单,通常都是如此。Jython语法好的方面当然是代码可以直接解释,也可以翻译成Java 源代码并自动编译为类文件。可以用下面的Java 命令来运行Hello World 程序:

  1. C:\>java -Dpython.home=C:\jython-2.1 -cp C:\jython-2.1\jython.jar   
  2.       org.python.util.jython hello.py 

也可以用下面更方便的Jython 脚本运行这个程序:

  1. C:\>jython hello.py 

回显,回显,echo.py!

然后,尝试一个增加了一些功能的示例,这是一个小程序,它允许您回显(echo)命令行参数。对于程序echo,使用以下代码(这些代码在echo.py 中):

清单 3. 回显命令行参数的示例程序

  1. import sys  
  2. count = 1 
  3. for arg in sys.argv[1:]:  
  4.     print 'Argument %i=%s' % (count, arg)  
  5.     count += 1 

同样,这个完整的Jython程序揭示了Jython语法的一些关键特性。要注意的***件事是每一行就是一个语句——不需要分号(;)来结束这些行——并且变量没有声明。

您还应当注意在Jython语法中,命令行参数是通过内置符号sys.argv 访问的,它是一系列字符串。sys是一个标准模块,它包含有用的值和函数,还有其他许多标准模块可供使用。***个argv 元素(0 )是程序名(即echo.py)。要跳过它,取走argv 列表的片段,实际开始位置为一(1),然后迭代直到列表的***。

另外,在Jython语法中,循环是通过 for 语句组实现的。 for 语句正文是 for 之后缩进的那些行。print 语句示范了使用Jython 的字符串格式编排功能(类似于 C/C++ 的 printf 和 Java 1.5 的新的 print 功能)。

还可以更精确地将上述代码写为以下形式:

  1. from sys import argv  
  2. for i in range(1, len(argv)): print 'Argument %i=%s' % (i, argv[i]) 

在这个示例中,使用range 以索引sys.argv 列表。因为 argv 变量是直接导入的,所以不需要限定。注意argv 列表的长度是通过len 函数而不是作为方法获得的,这是Jython语法中的一种用法,在许多语言中也常见。还有许多其他函数可用。

【编辑推荐】

  1. 在Eclipse下配置Jython的简易流程
  2. 使用Jython脚本管理WebSphere资源
  3. 如何在Java中调用Jython
  4. 略谈Jython语言:什么是Jython?
  5. 用于连接多个数据库的Jython安装

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...