91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Jython內省服務的示例分析

發布時間:2021-12-18 15:20:20 來源:億速云 閱讀:125 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“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內省服務的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

英德市| 永康市| 灯塔市| 呼图壁县| 洪泽县| 灌南县| 淳安县| 镇原县| 晋中市| 武邑县| 巍山| 简阳市| 内黄县| 冷水江市| 页游| 康平县| 册亨县| 临汾市| 盐亭县| 湘西| 公主岭市| 合作市| 右玉县| 鸡东县| 侯马市| 开封市| 西林县| 平塘县| 罗平县| 荆门市| 绍兴县| 观塘区| 长宁县| 枞阳县| 鞍山市| 万宁市| 南涧| 福州市| 班戈县| 同江市| 邹城市|