標準庫舉例:sys、copy
引言:Python標準庫內容非常多,有人專門為此寫過一本書。本文將選擇幾個呈現出來,一來顯示標準庫之強大功能,二來演示如何理解和使用標準庫。sys是常用的標準庫,已經不陌生了;copy也是已經用過的標準庫。先從熟悉的入手,容易理解,這也是“殺熟”。
本文選自《跟老齊學Python:輕鬆入門》。
sys
這是一個跟Python解釋器關係密切的標準庫,前麵已經使用過:sys.path.append()。
顯示了sys的基本文檔,第一句話概括了本模塊的基本特點。
在諸多sys函數和屬性中,下麵選擇常用的來說明。
1.sys.argv
sys.argv是專門用來向Python解釋器傳遞參數的,所以稱為“命令行參數”。
先解釋什麼是命令行參數。
這裏的--version就是命令行參數。如果使用python –help,則可以看到更多:
這裏隻顯示了部分內容,所看到的如-B、-h都是參數,比如python -h,其功能同上。所以,-h也是命令行參數。
sys.arg的作用就是通過它向解釋器傳遞命令行參數。比如:
將上述代碼保存,文件名是22101.py。然後如此操作:
將結果和前麵的代碼做個對比。
- 在$ python sys_file.py中,“sys_file.py”是要運行的文件名,同時也是命令行參數,是前麵的python這個指令的參數,其地位與python-h中的參數-h是等同的。
- sys.argv[0]是第一個參數,就是上麵提到的sys_file.py,即文件名。
如果這樣來試試:
在這裏用sys.argv [1]得到的就是beginner,依次類推。
2.sys.exit()
這個方法的作用是退出當前程序。
從文檔信息中可知,如果用sys.exit()退出程序,就會返回SystemExit異常。這裏先告知讀者,還有另外一種退出方式,即os._exit(),這兩者有所區別。
這段程序的運行結果如下:
在大多數函數中會用到return,其含義是終止當前的函數,並向調用函數的位置返回相應值(如果沒有就返回None)。但是sys.exit()的含義是退出當前程序(不僅僅是退出當前函數),並發起SystemExit異常。這就是兩者的區別。
如果使用sys.exit(0)表示正常退出,則需要在退出的時候有一個對人友好的提示,可以用sys.exit("I wet out at here."),那麼字符串信息就會被打印出來。
3.sys.path
sys.path已經不陌生了,它可以查找模塊所在的目錄,以列表的形式顯示出來。如果用append()方法,就能夠向這個列表增加新的模塊目錄,如前所演示,不再贅述。
copy
前麵對淺拷貝和深拷貝做了研究,這裏再次提出,溫故而知新。
這個模塊中常用的就是copy和deepcopy。
為了具體說明,看這樣一個例子,這個例子跟以前討論淺拷貝和深拷貝時略有不同,請讀者認真推敲結果,並對照代碼。
一切盡在不言中,請讀者認真對照上麵的顯示結果,體會深拷貝和淺拷貝的實現方法和含義。
本文選自《跟老齊學Python:輕鬆入門》,點此鏈接可在博文視點官網查看此書。
想及時獲得更多精彩文章,可在微信中搜索“博文視點”或者掃描下方二維碼並關注。
最後更新:2017-04-07 21:05:52