创建Jython类的过程探讨

开发 后端
本文讲述如何轻松地创建Jython类,以及定义Jython类的代码实现过程。

创建Jython类与创建全局函数一样容易。清单 13 提供了一个示例:

清单 13. 用户定义的Jython类的简单示例(保存在名为 listing13.py 的文件中)

  1. class Dog:  
  2.     def __init__(self, bark_text):  
  3.         self.bark_text = bark_text  
  4.         return 
  5.       
  6.     def bark(self):  
  7.         print self.bark_text  
  8.         return 
  9.     def annoy_neighbors(self, degree):  
  10.         for i in range(degree):  
  11.             print self.bark_text  
  12.         return 
  13. print "Fido is born" 
  14. fido = Dog("Bow wow")  
  15. print "Let's hear from Fido" 
  16. fido.bark()  
  17. print "Time to annoy the neighbors" 
  18. fido.annoy_neighbors(5

上述代码中,第一行命名该Jython类,其定义完全是一个大的代码块。

定义的第一个方法是特殊的 初始化程序(类似于 Java 构造函数)。它总是命名为 __init__ ,而且每当创建该类的新实例时就调用它。在 Jython 中,将正被调用(或在初始化程序的情况中,被创建)的当前实例显式声明为参数。传统上这个参数称为 self 。

在 Dog 初始化程序中, bark_text 参数是一个字符串,通过使用 self 将它存储为实例变量。在调用方法 bark() 时不采用任何显式参数,但仍须指定 self 。

方法 annoy_neighbors 确实采用了一个显式参数,它是除了 self 之外指定的另一个参数,并且它是狗为了烦扰邻居而叫嚷的次数。请注意代码运行时很容易进入深度嵌套,因此要进行缩进。在该类定义的方法 annoy_neighbors 定义内有一个循环块。以 print "Fido is born" 开始的代码再次演示了该类。清单 13 的输出类似如下:

清单 14. 清单 13 的输出

  1. $ jython listing13.py  
  2. Fido is born  
  3. Let's hear from Fido  
  4. Bow wow  
  5. Time to annoy the neighbors  
  6. Bow wow  
  7. Bow wow  
  8. Bow wow  
  9. Bow wow  
  10. Bow wow  

Jython类这样简单就创建了。

【编辑推荐】

  1. 轻松创建Jython全局函数
  2. 直接在源文件中编写Jython代码
  3. Jython入门指导:语言特性简介
  4. Jython的字符串操作和函数
  5. 更多的处理:在Jython中解析命令行
责任编辑:yangsai 来源: IBMDW
相关推荐

2009-07-15 17:38:58

Jython全局函数

2009-07-16 13:09:46

Jython安装

2009-07-14 15:20:25

Jython脚本Jython解释器

2009-07-10 17:33:39

jython语言什么是JythonJython

2019-07-24 08:34:35

Java对象数据结构

2010-06-18 09:23:33

SortedSet.NET 4

2011-06-22 16:37:03

SEO

2009-12-07 16:07:03

PHP类的继承

2009-12-22 18:24:13

WCF面向服务

2010-04-16 10:11:20

Oracle存储过程

2010-11-19 09:48:48

ORACLE创建实例

2009-07-14 17:12:55

Jython类

2009-07-15 17:49:09

Jython开发

2009-07-16 14:26:44

Python和Jyth

2009-07-14 15:27:17

Jython脚本示例

2009-12-08 11:16:07

PHP动态图像创建

2010-05-19 14:03:41

MySQL 存储过程

2009-07-10 18:10:18

Jython编写SerJython

2009-10-30 10:58:45

VB.NET创建类

2011-02-25 09:23:00

Java类加载器
点赞
收藏

51CTO技术栈公众号