介绍Jython类:添加定义类属性及隐藏变量

开发 后端
本文介绍了Jython类:如何添加类实例的属性,定义类属性和方法,以及隐藏变量。

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
责任编辑:yangsai 来源: 网络
相关推荐

2009-07-14 17:50:00

Jython特殊属性

2009-09-03 16:51:27

C#类属性

2009-07-16 16:40:14

Jython 2.2

2010-01-08 15:03:12

VB.NET类属性

2009-07-14 17:21:14

Jython方法

2009-07-15 17:43:20

Jython类

2009-12-30 13:59:58

Silverlight

2009-12-24 15:00:42

DataAdapter

2023-11-20 14:41:34

Python属性

2023-12-01 10:20:04

Python类属性

2010-09-10 10:23:57

SQL变量赋值

2009-07-10 17:33:39

jython语言什么是JythonJython

2009-07-15 15:50:48

Jython线程

2020-07-20 00:41:59

物联网设备定位技术物联网

2009-07-16 13:09:46

Jython安装

2009-07-15 16:35:55

Jython访问Jav

2009-09-07 03:37:51

C#窗体

2009-07-14 15:20:25

Jython脚本Jython解释器

2011-05-16 15:49:58

JAVA

2009-05-18 13:07:44

类隐藏Java关键字
点赞
收藏

51CTO技术栈公众号