Jython方法之init
__init__ 方法起 实例构造函数 的作用。只要创建实例就调用它。应当对所有类定义这个方法。方法 __init__ 可以有参数。与 C++ 或者 Java 语言不同,在 Jython 中,所有实例变量(也称为属性或者字段)是由赋值动态创建的。它们应当在 __init__ 中定义(即给它赋值)。这保证会定义它们以供后面的方法使用。下面是一些例子:
- class Class1:
- def __init__ (self): # no arguments
- self.data = [] # set implicit data
- class Class2:
- def __init__ (self, v1, v2): # 2 required arguments
- self.v1 = v1 # set data from parameters
- self.v2 = v2
- class Class3:
- def __init__ (self, values=None): # 1 optional argument
- if values is None: values = []
- self.values = values # set data from parameter
Jython方法之del
如果在 __init__ 方法(或者任何其他方法)中分配了任何资源,那么需要保证在释放(deallocate)对象之前释放它们。完成这一任务最好的方法是使用 __del__ 方法。__del__ 方法是在垃圾收集器释放对象之前调用的。还应当提供一个可以直接调用的清理方法(通常称为 close、destroy 或者 dispose)。下面是一个例子:
- class Class:
- def __init__ (self, db):
- self.connection = db.getConnection() # establish a connection
- self.connection.open()
- def __del__ (self): # cleanup at death
- self.close()
- def close(self): # cleanup
- if not self.connection is None and self.connection.isOpen():
- self.connection.close() # release connection
- self.connection = None
以上,介绍了两个常用的Jython方法。
【编辑推荐】