对Python函数设计规范详解


Posted in Python onJuly 19, 2019

Python函数的设计规范

1、Python函数设计时具备耦合性和聚合性

1)、耦合性:

(1).尽可能通过参数接受输入,以及通过return产生输出以保证函数的独立性;

(2).尽量减少使用全局变量进行函数间通信;

(3).不要在函数中直接修改可变类型的参数;

(4).避免直接改变定义在另外一个模块中的变量;

2)、聚合性:

(1).每个函数都应该有一个单一的、目的统一的目标;

(2).每个函数的功能都应该相对简单;

2、Python函数在脚本中应用示例

例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函数设计规范详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中用pycurl监控http响应时间脚本分享
Feb 02 Python
浅析Python中的多重继承
Apr 28 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
对python中类的继承与方法重写介绍
Jan 20 Python
python中使用while循环的实例
Aug 05 Python
解决pyshp UnicodeDecodeError的问题
Dec 06 Python
Python按照list dict key进行排序过程解析
Apr 04 Python
Python bisect模块原理及常见实例
Jun 17 Python
基于python实现音乐播放器代码实例
Jul 01 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
python+opencv实现车道线检测
Feb 19 Python
python 常用的异步框架汇总整理
Jun 18 Python
在django view中给form传入参数的例子
Jul 19 #Python
使用Python制作表情包实现换脸功能
Jul 19 #Python
解决Django一个表单对应多个按钮的问题
Jul 18 #Python
Django工程的分层结构详解
Jul 18 #Python
django mysql数据库及图片上传接口详解
Jul 18 #Python
解决django中ModelForm多表单组合的问题
Jul 18 #Python
浅谈Django中view对数据库的调用方法
Jul 18 #Python
You might like
基于mysql的bbs设计(五)
2006/10/09 PHP
PHP网站基础优化方法小结
2008/09/29 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
Python中subprocess模块用法实例详解
2015/05/20 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
Python连接mysql数据库的正确姿势
2016/02/03 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
python爬虫使用cookie登录详解
2017/12/27 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
python制作mysql数据迁移脚本
2019/01/01 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
初级Java程序员面试题
2016/03/03 面试题
制冷与电控专业应届生求职信
2013/11/11 职场文书
机电一体化专业推荐信
2013/12/03 职场文书
优秀演讲稿范文
2013/12/29 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
开网店计划分析
2019/07/30 职场文书
Python实战之用tkinter库做一个鼠标模拟点击器
2021/04/27 Python