内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Jython怎么用

小編給大家分享一下Jython怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有成都網(wǎng)站設(shè)計、成都做網(wǎng)站、網(wǎng)絡(luò)營銷策劃、網(wǎng)頁設(shè)計、網(wǎng)站維護(hù)、公眾號搭建、微信小程序定制開發(fā)、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動行銷領(lǐng)域創(chuàng)造價值而不懈努力!

Jython應(yīng)用實例一、回顯,回顯,echo.py!

嘗試一個增加了一些功能的示例,這是一個小程序,它允許您回顯(echo)命令行參數(shù)。對于程序echo,使用以下代碼(這些代碼在echo.py中):

清單1. 回顯命令行參數(shù)的示例程序

import sys  count = 1 for arg in sys.argv[1:]:      print 'Argument %i=%s' % (count, arg)      count += 1

同樣,這個完整的Jython程序揭示了Jython的一些關(guān)鍵特性。要注意的***件事是每一行就是一個語句——不需要分號(;)來結(jié)束這些行——并且變量沒有聲明。

您還應(yīng)當(dāng)注意命令行參數(shù)是通過內(nèi)置符號sys.argv訪問的,它是一系列字符串。sys是一個標(biāo)準(zhǔn)模塊,它包含有用的值和函數(shù),還有其他許多標(biāo)準(zhǔn)模塊可供使用。***個argv元素(0)是程序名(即echo.py)。要跳過它,取走argv列表的片段,實際開始位置為一(1),然后迭代直到列表的***。

循環(huán)是通過for語句組實現(xiàn)的。for語句正文是for之后縮進(jìn)的那些行。print語句示范了使用Jython的字符串格式編排功能(類似于C/C++的printf和Java 1.5的新的print功能)。

還可以更精確地將上述代碼寫為以下形式:

from sys import argv  for i in range(1, len(argv)): print 'Argument %i=%s' % (i, argv[i])

在這個示例中,使用range以索引sys.argv列表。因為argv變量是直接導(dǎo)入的,所以不需要限定。注意argv列表的長度是通過len函數(shù)而不是作為方法獲得的,這是Jython的一種用法,在許多語言中也常見。還有許多其他函數(shù)可用。

Jython應(yīng)用實例二、利用factorial.py進(jìn)行階乘!

我們用高速緩存階乘計算器factorial.py作為類定義的練習(xí),如清單2所示。

清單2. 高速緩存階乘計算器

class Factorial:      ''' A factorial calculator '''      seen = {} # cache of prior calculated values          def __init__ (self, value):          self.__value = value      def compute (self, value=None):                  ''' calculate the result '''          if value is None: value = self.__value   # default          if   value < 0:          # bad arg!              raise ValueError, 'arg < 0'          elif value < 2:          # base case              return 1L            # insure long integers are used          else:                    # need to calculate              if not value in Factorial.seen.keys():    # not done before?                  # calculate this value and cache it                  Factorial.seen[value] = value * \                       Factorial(value - 1).compute()              return Factorial.seen[value]  # get value from the cache

這里可以看到Jython的許多新特性。首先,用明確的(#)標(biāo)識引入注釋。一個類或者方法可以有文檔注釋字符串(可以用使用用法類似于JavaDoc的工具進(jìn)行處理)作為其***行。與賦值不同,語句是用關(guān)鍵字引入的。類和方法正文沒有包圍在定界符中,而是由縮進(jìn)的正文來體現(xiàn)。

而且,類是用class語句聲明的。def語句引入方法。類特性是用類中的賦值創(chuàng)建的,而實例特性是用構(gòu)造函數(shù)方法__init__中的賦值創(chuàng)建的。seen變量是一個字典。實例是將類對象作為函數(shù)調(diào)用而創(chuàng)建的。方法是用點(.)運算符調(diào)用的。

您還會注意到self變量是方法的接收器(就像Java語言中的this),在方法中,所有對實例特性或者類的方法的引用都必須用self限定。類變量(像在Java語言中一樣)是用類名限定的。

函數(shù)可以有默認(rèn)參數(shù),如compute函數(shù)的值參數(shù)所示。如果沒有給出參數(shù)值,就使用__value實例特性。

現(xiàn)在,顯然可以看出Jython支持Java語言的所有功能,但是有時使用了不同的語法。例如,Jython的raise語句與Java語言的throw語句是相同的。

測試factorial.py

可以用下面的代碼測試這個Factorial類,可以在文件factorial.py中找到這些代碼(請參閱參考資料):

if __name__ == "__main__":      from sys import argv      if   len(argv) == 1: vals = range(10)      elif len(argv) == 2: vals = range(int(argv[1]))      elif len(argv) == 3: vals = range(int(argv[1]), int(argv[2]))      else: print " Incorrect range"; vals = ()      for i in vals:          print "Factorial(%i)=%i" % (i, Factorial(i).compute())      print "Cache:", Factorial.seen

在Jython中,可以結(jié)合類定義和測試用例。上述if __name__……測試使得只有當(dāng)文件作為命令運行時才運行測試用例代碼。還可以用另一個文件引入這個文件,以重復(fù)使用Factorial類但不必運行測試用例。測試用例包含幾個簡單的命令參數(shù)處理,然后是一個循環(huán),它計算指定值(如果有的話)的階乘。***,打印出緩存的值。jython factorial.py 5 10命令生成以下輸出:

Factorial(5)=120  Factorial(6)=720  Factorial(7)=5040  Factorial(8)=40320  Factorial(9)=362880  Cache: {9: 362880L, 8: 40320L, 7: 5040L, 6: 720L, 5: 120L, 4: 24L, 3: 6L, 2: 2L}

您可能還注意到上述示例中可以用Jython long(###L)類型計算不定長度整數(shù)。

以上是“Jython怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享文章:Jython怎么用
網(wǎng)頁路徑:http://www.rwnh.cn/article38/ghccpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、移動網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化、網(wǎng)站維護(hù)、域名注冊、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
启东市| 合山市| 松溪县| 东至县| 永和县| 三穗县| 巨鹿县| 济源市| 札达县| 保德县| 梅州市| 鹤山市| 鸡泽县| 伊宁县| 滁州市| 马尔康县| 桃园市| 咸阳市| 平利县| 沿河| 云霄县| 黎平县| 浏阳市| 自贡市| 文化| 舟山市| 通河县| 阜阳市| 阿合奇县| 寿宁县| 屏东县| 郓城县| 恩平市| 牡丹江市| 曲阳县| 迁安市| 桑植县| 永城市| 达孜县| 隆昌县| 若羌县|