對Python函數(shù)設(shè)計規(guī)范詳解
Python函數(shù)的設(shè)計規(guī)范
1、Python函數(shù)設(shè)計時具備耦合性和聚合性
1)、耦合性:
(1).盡可能通過參數(shù)接受輸入,以及通過return產(chǎn)生輸出以保證函數(shù)的獨立性;
(2).盡量減少使用全局變量進行函數(shù)間通信;
(3).不要在函數(shù)中直接修改可變類型的參數(shù);
(4).避免直接改變定義在另外一個模塊中的變量;
2)、聚合性:
(1).每個函數(shù)都應(yīng)該有一個單一的、目的統(tǒng)一的目標(biāo);
(2).每個函數(shù)的功能都應(yīng)該相對簡單;
2、Python函數(shù)在腳本中應(yīng)用示例
例1:將/etc/passwd文件中的每一行都分隔為一個列表
[root@test0528]# vim test1.py #!/usr/bin/python27 # importre filename ='/etc/passwd' f1 =open(filename,'r') l1 =f1.readlines() bash =[] for i inl1: bash.append(i) defgenList(x): y = 0 x = len(bash) while y <= x: yield bash[y] y += 1 g1 =genList(bash) count =0 whilecount < len(bash): gg=g1.next() linelist = gg.split(':') print linelist count += 1 f1.close() [root@test0528]# ./test1.py ['root','x', '0', '0', 'root', '/root', '/bin/bash\n'] ['bin','x', '1', '1', 'bin', '/bin', '/sbin/nologin\n'] ['daemon','x', '2', '2', 'daemon', '/sbin', '/sbin/nologin\n'] ...... ['nginx','x', '496', '493', 'nginx user', '/var/cache/nginx','/sbin/nologin\n'] ['mysql','x', '27', '27', 'MySQL Server', '/var/lib/mysql','/bin/bash\n'] ['redis','x', '495', '492', 'Redis Database Server', '/var/lib/redis','/sbin/nologin\n']
例2:將任意文件按用戶指定的分隔符把每一行都分隔為一個列表
[root@test0528]# vim test2.py #!/usr/bin/python27 # importre #print"PLease input filename:" #filename= raw_input() filename =str(raw_input("PLease input filename: ")) f1 =open(filename,'r') l1 =f1.readlines() #print"PLease input separator:" #separator= raw_input() separator= str(raw_input("PLease input separator: ")) bash =[] for i inl1: bash.append(i) defgenList(x): y = 0 x = len(bash) while y <= x: yield bash[y] y += 1 g1 =genList(bash) count =0 whilecount < len(bash): gg=g1.next() linelist = gg.split(separator) print linelist count += 1 f1.close() [root@test0528]# ./test2.py PLeaseinput filename: /etc/passwd PLeaseinput separator: : ['root','x', '0', '0', 'root', '/root', '/bin/bash\n'] ['bin','x', '1', '1', 'bin', '/bin', '/sbin/nologin\n'] ['daemon','x', '2', '2', 'daemon', '/sbin', '/sbin/nologin\n'] ... ['nginx','x', '496', '493', 'nginx user', '/var/cache/nginx','/sbin/nologin\n'] ['mysql','x', '27', '27', 'MySQL Server', '/var/lib/mysql','/bin/bash\n'] ['redis','x', '495', '492', 'Redis Database Server', '/var/lib/redis','/sbin/nologin\n'] 例3:用折疊的方式(reduce)求階乘 [root@test0528]# vim test3.py #!/usr/bin/python27 # getn! num =int(raw_input('please nput a number:')) num +=1 list =range(1,num) deffunc(m,n): return m*n x =reduce(func,list) printx [root@test0528]# ./test3.py pleasenput a number:4 24
以上這篇對Python函數(shù)設(shè)計規(guī)范詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 多線程實現(xiàn)多任務(wù)的方法示例
本文主要介紹了python 多線程實現(xiàn)多任務(wù)的方法示例,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07python實現(xiàn)測試工具(一)——命令行發(fā)送get請求
這篇文章主要介紹了python如何實現(xiàn)命令行發(fā)送get請求,幫助大家更好的利用python進行測試工作,感興趣的朋友可以了解下2020-10-10Python實現(xiàn)普通圖片轉(zhuǎn)ico圖標(biāo)的方法詳解
ICO是一種圖標(biāo)文件格式,圖標(biāo)文件可以存儲單個圖案、多尺寸、多色板的圖標(biāo)文件。本文將利用Python實現(xiàn)普通圖片轉(zhuǎn)ico圖標(biāo),感興趣的小伙伴可以了解一下2022-11-11Python實現(xiàn)帶下標(biāo)索引的遍歷操作示例
這篇文章主要介紹了Python實現(xiàn)帶下標(biāo)索引的遍歷操作,結(jié)合具體實例形式分析了2種帶索引的遍歷操作實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下2019-05-05python?Sweetviz探索性數(shù)據(jù)可視化分析庫使用特征詳解
這篇文章主要為大家介紹了python?Sweetviz探索性數(shù)據(jù)可視化分析庫特征使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01python使用socket創(chuàng)建tcp服務(wù)器和客戶端
這篇文章主要為大家詳細介紹了python使用socket創(chuàng)建tcp服務(wù)器和客戶端,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04