创建Jython类的过程探讨
创始人
2024-04-16 06:20:20
0

创建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中解析命令行

相关内容

热门资讯

如何允许远程连接到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...