Jython内省服务的示例分析
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要为大家展示了"Jython内省服务的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Jython内省服务的示例分析"这篇文章吧。Jyth
千家信息网最后更新 2025年11月07日Jython内省服务的示例分析
这篇文章主要为大家展示了"Jython内省服务的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Jython内省服务的示例分析"这篇文章吧。
Jython的内省服务
常常需要在运行时确定一个对象的特性。我们称这为内省这个对象。 Java 平台通过 java.lang.Class 类和 java.lang.reflect 包中的类提供了内省服务。这些 API 虽然强大,但是它们不太容易使用。您猜对了,Jython提供了更简单的内省方式。
在 Jython 中,我们可以使用 dir 和vars 函数检查任何对象 ―― 如模块、函数、类、序列、映射等 ―― 的绑定。为了更好地理解它是如何工作的,考虑下面的例子。每一个 print 语句的输出插入了前缀"..."(并重新编排)以方便阅读dir 函数只返回绑定名,而 vars 函数返回名字和值,因此,当两个函数返回同样的名字时,我们只需要使用 vars函数,如下所示:
#-- empty start -- print "vars:", vars() ...vars: {'__doc__': None, '__name__': '__main__'} x = 1 y = 2 z = 3 l = [x, y, z] d = {x:"xxxx", y:"yyyy", z:"zzzz"} #-- 本地变量 -- print x, y, z, l, d ...1 2 3 [1, 2, 3] {3: 'zzzz', 2: 'yyyy', 1: 'xxxx'} #-- Jython内省:添加本地变量 -- print "vars:", vars() ...vars: {'__name__': '__main__', 'x': 1, \ ... 'd': {3: 'zzzz', 2: 'yyyy', 1: 'xxxx'}, '__doc__': None, \ ... 'y': 2, 'l': [1, 2, 3], 'z': 3} import sys #-- Jython内省:plus import -- print "vars:", vars() ...vars: {'__name__': '__main__', 'z': 3, 'l': [1, 2, 3], \ ... '__doc__': None, 'y': 2, 'x': 1, 'sys': sys module, \ ... 'd': {3: 'zzzz', 2: 'yyyy', 1: 'xxxx'}} #-- Jython内省:sys import -- print "vars sys:", vars(sys) ...vars sys: {'classLoader': \ ... < beanProperty classLoader type: java.lang.ClassLoader at 31845755>, ... ... many values removed ..., ... 'warnoptions': < reflected field public static \ ... org.python.core.PyList \ ... org.python.core.PySystemState.warnoptions at 1024901>} del x, y, z #-- Jython内省:post delete -- print "vars:", vars() ...vars: {'__name__': '__main__', 'l': [1, 2, 3], '__doc__': None, \ ... 'sys': sys module, 'd': {3: 'zzzz', 2: 'yyyy', 1: 'xxxx'}} def func (x, y): return x, y class MyClass (): def __init__ (self, x, y): self.__x = x self.__y = y def method1 (self): return self.x + self.y def method2 (self, x, y): return self.x + self.y + x + y #-- Jython内省:plus function and class -- print "vars:", vars() ....vars: {'func': < function func at 21569784>, '__name__': '__main__', \ ... 'l': [1, 2, 3], '__doc__': None, \ .... 'MyClass': < class __main__.MyClass at 1279942>, \ ... 'sys': sys module, 'd': {3: 'zzzz', 2: 'yyyy', 1: 'xxxx'}} #-- Jython内省:function -- print "dir: ", dir(func) # **** dir and vars different here **** print "vars:", vars(func) ...dir: ['__dict__', '__doc__', '__name__', 'func_closure', \ ... 'func_code', 'func_defaults', 'func_doc', 'func_globals', 'func_name'] ...vars: None #-- Jython内省:class -- print "vars:", vars(MyClass) ...vars: {'__doc__': None, '__init__': < function __init__ at 17404503>, \ ... 'method2': < function method2 at 23511968>, '__module__': '__main__', \ ... 'method1': < function method1 at 28670096>} myclass = MyClass(1, 2) #-- Jython内省:instance -- print "myclass:", myclass print "vars:", vars(myclass) ...myclass: < __main__.MyClass instance at 19014134> ...vars: {'_MyClass__y': 2, '_MyClass__x': 1}注意 dir(x) 一般等同于 x.__dict__.keys(),而 vars(x) 一般等同于 x.__dict__。
以上是"Jython内省服务的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
函数
服务
示例
分析
内容
对象
篇文章
变量
名字
学习
帮助
强大
对了
两个
例子
前缀
平台
序列
方式
易懂
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发项目管理证
游戏软件开发测试机
公司经营重要数据库
如何查询网页连接数据库
数据库主建有用吗
合肥信息化软件开发
h3c服务器管理口默认地址
阿里下架服务器
宁夏网络技术服务
数据库数据字典的拥有者
unity收不到服务器消息
第九章网络安全思维导图
国家网络安全特辑报道稿
锦州网络技术员
数据库产品作用
国家网络安全产业园签约仪式
竞速数据库管理的优势
原神关服能跟小米服务器组队不
湖南量化积分管理软件开发公司
派币做节点需要服务器么
银行招那么多互联网金融科技人才
头条公司有多少服务器
广州语音直播软件开发
微软在网络安全领域的地位
区块链属于网络安全范畴吗
关于提高计算机网络技术水平
虹口区品牌软件开发专业服务
上海大学数据库第七周研讨
文件传输服务器是什么意思
光伏企业网络安全区的划分