《Python核心編程》第二版第437頁第十四章練習 續二 -Python核心編程答案-自己做的-

來源:互聯網
上載者:User

這是自己做的練習,可能有錯誤,歡迎討論和各種最佳化重構方案。
根據反饋,或者code review,對本篇文章答案或者相關內容的更新補充,一般會被添加在本篇部落格的評論中。
將盡量保證每題的答案代碼是完整的,不僅僅是函數,類或者只是個大概,力求開啟Python 2.7的IDLE,將代碼完整拷貝進去,就能調試運行。
歡迎訪問Balian在部落格園的家。 http://www.cnblogs.com/balian

【這篇博文可能讓人失望,對不起】

14-9.
Shells。建立shell(作業系統介面)程式。給出接受作業系統命令的命令列介面(任意平台)。
附加題1:支援管道(見os模組中的dup(),dup2()和pipe()函數)。管道過程允許進程的標準輸入串連到另一個進程的標準輸入。
附加題2:用括弧支援逆序的管道,給shell一個函數式編程介面。換句話說,支援更加函數式風格,如sort(grep(ps (-ef), root), -n, +1),而不是ps -ef | grep root | sort -n +1這樣的命令。
【未完】
感覺有難度,暫時押後。

14-10.
fork()/exec*()和spawn*()的比較。使用fork()-exec*()對和spawn*()家族函數有什麼不同?那一組的功能更強?
【未完】
感覺有難度,暫時押後。但可以參考書第429頁表14.6以及
http://blog.csdn.net/small_tina/article/details/8071791

14-11.
產生和執行Python代碼。用funcAttrs.py指令碼(例14.4-實際應該是14.2,書第425頁)加入測試代碼到已有程式的函數中。建立一個測試架構,每次遇到你特殊的函數屬性,它都會運行你的測試代碼。
【未完】
感覺有難度,暫時押後。funcAttrs.py指令碼代碼如下:

def foo():    return Truedef bar():    'bar() does not do much'    return Truefoo.__doc__ = 'foo() does not do much'foo.tester='''if foo():    print 'PASSED'else:    print 'FAILED''''for eachAttr in dir():    obj = eval(eachAttr)    if isinstance(obj, type(foo)):        if hasattr(obj, '__doc__'):            print '\nfunction "%s" has a doc string:\n\t%s' % (eachAttr, obj.__doc__)        if hasattr(obj, 'tester'):            print 'function "%s" has a tester... executing' % eachAttr            exec obj.tester        else:            print 'Function "%s" has no tester... skip ping' % eachAttr    else:        print '"%s" is not a function' % eachAttr

【執行結果】

"__builtins__" is not a function"__doc__" is not a function"__file__" is not a function"__name__" is not a function"__package__" is not a functionfunction "bar" has a doc string:bar() does not do muchFunction "bar" has no tester... skip pingfunction "foo" has a doc string:foo() does not do muchfunction "foo" has a tester... executingPASSED
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.