介绍Jython类:添加定义类属性及隐藏变量
创始人
2024-04-15 03:51:09
0

Jython类——添加类实例的属性

在 Jython 中(与 Java 语言不同),客户可以在实例中添加 字段 (也称为 属性)。这只改变一个实例。要向实例添加字段(x),只要在这个实例上设置新值,如下所示:

  1. x.attr1 = 1 
  2. x.attr2 = 2 
  3.     :  
  4. x.attrN = n 

Jython类——定义类属性和方法

所有在一个类中绑定的变量都是 类属性 (或者变量)。所有在类中定义的函数都是 方法。方法以类的一个实例,一般称为 self,作为***个(也许是惟一的)参数。例如,要定义一些类属性和方法,可以输入:

  1. class MyClass:  
  2.    attr1 = 10 # class attributes  
  3.    attr2 = "hello" 
  4.  
  5.    def method1(self):  
  6.      print MyClass.attr1 # reference the class attribute  
  7.  
  8.    def method2(self, p1, p2):  
  9.      print MyClass.attr2 # reference the class attribute  
  10.  
  11.    def method3(self, text):  
  12.      self.text = text # instance attribute  
  13.      print text, self.text # print my argument and my attribute  
  14.    method4 = method3 # make an alias for method3  

注意在类中,应当用类名限定所有对类属性的引用(例如 MyClass.attr1),用 self 变量限定所有对实例变量的引用(例如 self.text)。在类外部,应当用类名限定所有对类属性的引用(例如 MyClass.attr1),或者用实例限定对实例的引用(例如 x.attr1)和所有对实例属性的引用(例如 x.text,其中 x 是类的一个实例)。

Jython类——隐藏变量

要实现数据隐藏,常常需要创建 “private”变量,它只能被类本身访问。 Jython 提供了一个命名规范,它使从类外部访问属性和方法很困难。如果声明以下形式的名字: __xxx 或者 __xxx_yyy (前面有下划线),那么 Jython 解析器将自动拆分(mangle)所声明的名字(即加上类名),从而创建隐藏的变量。例如:

  1. class MyClass:  
  2.     __attr = 10    # private class attribute  
  3.  
  4.     def method1(self):  
  5.         pass 
  6.  
  7.     def method2(self, p1, p2):  
  8.         pass 
  9.  
  10.     def __privateMethod(self, text):  
  11.         self.__text = text   # private attribute  

注意与 C++ 和 Java 语言不同,对实例变量的所有引用都必须用 self 限定,不会隐式使用 this。

【编辑推荐】

  1. Jython中的对象——面向对象的语言概述
  2. 在Eclipse下配置Jython的简易流程
  3. 使用Jython脚本管理WebSphere资源
  4. 几个基础的Jython脚本示例
  5. 使用Jython编写Servlet

相关内容

热门资讯

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