对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使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
python中xrange用法分析
Apr 15 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
Python编写一个优美的下载器
Apr 15 Python
python如何制作缩略图
Apr 30 Python
解决pycharm remote deployment 配置的问题
Jun 27 Python
python打包生成so文件的实现
Oct 30 Python
Python实现学生管理系统(面向对象版)
Jun 24 Python
python开发的自动化运维工具ansible详解
Aug 07 Python
asyncio异步编程之Task对象详解
Mar 13 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 23 Python
Python实现聚类K-means算法详解
Jul 15 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
php修改时间格式的代码
2011/05/29 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
Jquery中Event对象属性小结
2015/02/27 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
2016/05/31 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
python获取糗百图片代码实例
2013/12/18 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
python安装本地whl的实例步骤
2019/10/12 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
详解Python中的路径问题
2020/09/02 Python
Hotels.com南非:酒店预订
2017/11/02 全球购物
联想英国官网:Lenovo英国
2019/07/17 全球购物
服装销售人员求职自我评价
2013/09/26 职场文书
会计专业自我鉴定范文
2013/10/06 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
组织鉴定材料
2014/06/02 职场文书
实习介绍信模板
2015/01/30 职场文书
给领导敬酒词
2015/08/12 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
如何基于python实现单目三维重建详解
2022/06/25 Python
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库