轻松创建Jython全局函数

开发 后端
本文介绍了如何创建Jython全局函数,以及定义Jython全局变量。文中提供了一段简单的代码,创建了两个Jython全局变量,并对其执行了一段for循环。

即使 Java 语言不支持全局函数,您也可以轻松创建Jython全局函数。您还可以定义Jython全局变量(通常要设置常量,而不必为它们创建类包装器)。例如,看一下下面的清单:

清单 10. Jython全局函数以字符串形式返回一系列数字(保存在名为 listing10.py 的文件中)

  1. START = 1 
  2. SPACER = " " 
  3. def CounterString(length):  
  4.     buffer = ""  
  5.     for i in range(START, length):  
  6.         buffer = buffer + str(i) + SPACER  
  7.     return buffer  
  8. print CounterString(10)  

首先我们定义了两个Jython全局变量 START 和 SPACER ,它们用作该程序的常量,其中一个是整数,而另一个是字符串。

接着我们使用 def 关键字定义了函数 CounterString 。该函数有一个称为 length 的整数参数。Jython 未显式检查该参数是否是整数,这一事实是 Jython 的动态特性的一个优点;但它同时也可能是一个缺点,因为某些类型错误只有在后面的 Java 编程中才能被捕获。

请注意函数特征符行以冒号结尾,从而引入了一个新块,它是通过使后续行缩进来标记的。这一新块的第一行将字符串 buffer 初始化为空字符串。对这个 buffer 进行操作以产生所期望的函数结果。

下一行创建了一个循环。Jython 的 for 语句与 Java 语言语句完全不同。在 Java 编程中,您可以设置初始和终止条件,以及每个循环步骤。Jython 的循环自始至终总使用一个特殊序列。该序列一般是一个列表,它是 Jython 的一种非常重要的数据类型。

由三个字符串组成的列表如下所示:

["a", b", "c"]

如果您想对从 1到 N 的数字作循环(如同我们这里所做的),那么可以使用函数 range() ,它返回给定范围内的数字列表。在交互式 Jython 提示符下做些实验应该会帮助您熟悉这个工具:

清单 11. range() 函数示例

  1. >>> range(5)  
  2. [01234]  
  3. >>> range(15)  
  4. [1234]  
  5. >>> range(1102)  
  6. [13579]  
  7. >>> range(101, -3)  
  8. [1074

回过头看一下 清单 10, for 循环的每个迭代都作为一个代码块运行,该代码块从该函数体其余部分缩进一层。该块是将当前 buffer 并置到新数字的一行代码,首先使用 str() 函数(而不是 Java 编程中的 cast )将新数字强制转换成字符串,随后追加一个分隔符。该循环终止后,返回最终的 buffer。该函数体之后的一行代码对它进行测试。Jython 同样允许您不使用任何特殊工具(如应用程序类上的 main 方法)就可以完成这个任务。清单 10 的输出显示如下:

清单 12. 清单 10 的输出

  1. $ jython listing10.py  
  2. 1 2 3 4 5 6 7 8 9   

以上便是Jython全局函数的介绍。

【编辑推荐】

  1. 直接在源文件中编写Jython代码
  2. Jython入门指导:语言特性简介
  3. Jython的字符串操作和函数
  4. 更多的处理:在Jython中解析命令行
  5. 如何将Jython类型转换为Java类型
责任编辑:yangsai 来源: IBMDW
相关推荐

2009-07-15 17:43:20

Jython类

2009-07-10 17:33:39

jython语言什么是JythonJython

2009-07-15 17:20:45

Jython字符串

2009-07-16 13:09:46

Jython安装

2009-07-14 15:20:25

Jython脚本Jython解释器

2009-12-18 17:29:02

Ruby创建XML

2009-07-10 18:10:18

Jython编写SerJython

2020-09-24 10:57:12

编程函数式前端

2010-02-02 10:07:59

C++全局函数

2009-07-10 17:40:58

Jython访问MyS

2009-07-14 17:50:00

Jython特殊属性

2009-08-28 16:29:02

C#类库工程

2023-12-24 12:56:14

C++函数语言

2009-12-10 11:02:44

PHP函数eval()

2012-05-18 10:14:47

JythonJavaJVM

2009-09-28 15:28:07

Jython 2.5.

2009-07-15 17:49:09

Jython开发

2009-07-10 17:54:15

Java中调用JythJython

2009-07-14 17:58:55

Jython性能

2009-07-14 15:27:17

Jython脚本示例
点赞
收藏

51CTO技术栈公众号