日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

《可爱的Python》读书笔记(五)

發布時間:2025/3/18 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《可爱的Python》读书笔记(五) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不論戰術上如何變化,千萬不要忘記戰略目標。


在前些時候小白已經使用getopt獲得命令行工具。

但是,要完成一個個看似簡單,實際有 N 多情況的邏輯判定就有點煩人了。

熱心的行者,又出聲了:“使用 cmd 吧!”


cmd模塊,是一個專門支持命令行界面的模塊。讓我們來重構一下它:

#?-*-?coding:?utf-8?-*- import?sys import?cmdclass?PyCDC(cmd.Cmd):def?__init__(self):#?初始化基類,類的定量應該都在初始化時聲明cmd.Cmd.__init__(self)#?定義命令行提示符self.prompt?=?">"#?定義walk命令所執行的操作????def?do_walk(self,?filename):??if?filename?==?"":filename?=?input("請輸入cdc文件名:")print("掃描光盤內容保存到:'%s'"?%?filename)#?定義walk命令的幫助輸出????def?help_walk(self):??print("掃描光盤內容?walk?cd?and?export?init?'.cdc'")#?定義dir命令所執行的操作def?do_dir(self,?pathname):??if?pathname?==?"":pathname?=?input("請輸入指定保存/搜索目錄:")#?定義dir(命令的幫助輸出????def?help_dir(self):??print("指定保存/搜索目錄")#?定義find命令所執行的操作???def?do_find(self,?keyword):??if?keyword?==?"":keyword?=?input("請輸入搜索關鍵詞:")#?定義find命令的幫助輸出def?help_find(self):print("搜索關鍵詞")#?定義quit命令所執行的操作def?do_quit(self,?arg):sys.exit(1)#?定義quit命令的幫助輸出def?help_quit(self):print("Syntax:quit")print("--terminates?the?application")#?定義quit的快捷方式do_q?=?do_quitif?__name__?==?'__main__':cdc?=?PyCDC()cdc.cmdloop()

運行效果如下:

>help Documented?commands?(type?help?<topic>): ======================================== dir??find??help??quit??walk Undocumented?commands: ====================== q >dir 請輸入指定保存/搜索目錄:cdc >walk 請輸入cdc文件名:test.cdc 掃描光盤內容保存到:'test.cdc' >?find 搜索關鍵詞 >xx ***?Unknown?syntax:?xx >q >>>? ========================== >find 請輸入搜索關鍵詞:images >quit


可以看到,此代碼純粹是用來嘗試cmd模塊功能的,只能打印輸出信息,沒有任何實際作用。

從這個例子可以看出,首先PyCDC類繼承cmd.Cmd類,然后在類中定義了walk,dir,find和quit,而命令q被作為quit的短命令形式。(也就是說,若須另外定義一條命令,如command,只要在PyCDC類中增加一個 do_command 函式)而該命令對應的幫助信息由help_command 函式給出。

就像示例中所寫的那樣,自定義的PyCDC類提供了的命令,是可以正常使用它們的,而xx命令是沒有定義的,所以命令行提示為未知語法。最后的q命令和quit是一樣的功能,即退出程序。


#?-*-?coding:?utf-8?-*- import?os import?sys from?cdctools?import?*????????#?可以引入己有腳本cdctools中的所有函數def?cdWalker(cdrom,?cdcfile):export?=?""for?root,?dirs,?files?in?os.walk(cdrom):export?+=?"\n?%s;%s;%s"?%?(root,?dirs,?files)open(cdcfile,?'w').write(export)if?__name__?==?"__main__":cdc?=?PyCDC()cdc.cmdloop()


哈哈,可以運行起來!可以看的出在代碼中,按代碼的復用尺度來分,從小到大應該是:代碼行→函式→類→模塊

好像還有更大的一級包,具體現在還用不上,那就先不管它了。


轉載于:https://blog.51cto.com/9473774/2090044

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的《可爱的Python》读书笔记(五)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。