对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中的Queue与多进程
Aug 25 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
Python 实现try重新执行
Dec 21 Python
Python如何获取Win7,Win10系统缩放大小
Jan 10 Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 Python
python如何建立全零数组
Jul 19 Python
Django中ORM的基本使用教程
Dec 22 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
Feb 05 Python
python装饰器代码深入讲解
Mar 01 Python
关于Python OS模块常用文件/目录函数详解
Jul 01 Python
python实现学生信息管理系统(面向对象)
Jun 05 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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
PHP4(windows版本)中的COM函数
2006/10/09 PHP
ThinkPHP php 框架学习笔记
2009/10/30 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
关于JS字符串函数String.replace()
2013/04/07 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
2017/02/14 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
python标准库OS模块详解
2020/03/10 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
10个顶级Python实用库推荐
2021/03/04 Python
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
.NET面试题:什么是反射
2016/09/30 面试题
物流管理专业职业生涯规划书
2014/01/06 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
学校食品安全实施方案
2014/06/14 职场文书
社会工作专业求职信
2014/07/15 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
事业单位年度考核评语
2014/12/31 职场文书
文明礼仪主题班会
2015/08/13 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
Python中Cookies导出某站用户数据的方法
2021/05/17 Python