Jython特殊属性介绍
创始人
2024-04-15 05:00:25
0

Jython特殊属性一览  

Jython 类提供了对几个特殊属性的支持。下面列出最重要的几个:

名字 作用 注释
__dict__ 对象的可写属性 可以用于内省对象的属性
__class__ 对象的类 访问对象的类(类似于 Java 代码中的x.getClass() )
__bases__ 对象的立即父类的元组 可以用于内省对象的父类

Jython特殊属性——改变现有实例的类

与大多数其他语言不同,在 Jython 中可以改变现有实例的类。这会将可以使用的实例方法改变为新类的方法,但是不会改变所有预先存在的字段。例如,要改变一个实例的类,将新类赋值给特殊属性 __class__ ,如下所示:

  1. x = SomeClass()   
  2. print isinstance(x, SomeClass) # prints: 1 (true)  
  3. print isinstance(x, SomeOtherClass) # prints: 0 (false)  
  4.   :  
  5. # change the class (that is, the type) of the instance here  
  6. x.__class__ = SomeOtherClass   
  7. print isinstance(x, SomeClass) # prints: 0 (false)  
  8. print isinstance(x, SomeOtherClass) # prints: 1 (true)  
  9.  
  10. y = SomeOtherClass()   
  11. print x.__class__ == y.__class__ # prints: 1 (true)  

这样改变之后,x 实例将支持 SomeOtherClass 的方法,而不是以前的 SomeClass 的方法。在改变对象的类时,要注意实例应具有对新类正确的属性。

Jython特殊属性——其他内省函数

特殊属性中描述的属性允许对类进行更多内省。特别是,可以用 __dict__ 属性确定类中的方法和实例中的字段。

除了 dir 和 vars,Jython 还提供了其他的用于内省类和实例的函数,如下所示:

函数 注释
hasattr(obj, name) 测试指定的属性是否存在
getattr(obj, name{,default}) 如果属性存在,得到属性的名字,否则返回默认值(如果没有默认值,则抛出一个异常)
setattr(obj, name, value) 设置指定属性的值
delattr(obj, name) 删除指定的属性

【编辑推荐】

  1. Jython的继承能力:单继承和多继承
  2. 常用Jython方法介绍:init和del
  3. 介绍Jython类:添加定义类属性及隐藏变量
  4. Jython中的对象——面向对象的语言概述
  5. 在Eclipse下配置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...