对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创建和使用字典实例详解
Nov 01 Python
python中使用enumerate函数遍历元素实例
Jun 16 Python
python中将字典转换成其json字符串
Jul 16 Python
python实现生命游戏的示例代码(Game of Life)
Jan 24 Python
python 使用 requests 模块发送http请求 的方法
Dec 09 Python
Python中捕获键盘的方式详解
Mar 28 Python
Django model update的多种用法介绍
Mar 28 Python
python分布式编程实现过程解析
Nov 08 Python
python3 动态模块导入与全局变量使用实例
Dec 22 Python
Python 安装 virturalenv 虚拟环境的教程详解
Feb 21 Python
Python datetime 格式化 明天,昨天实例
Mar 02 Python
python套接字socket通信
Apr 01 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
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
php缓存技术详细总结
2013/08/07 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
PHP获取当前执行php文件名的代码
2017/03/02 PHP
PHP7中I/O模型内核剖析详解
2019/04/14 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
Seajs的学习笔记
2014/03/04 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
Vue源码探究之虚拟节点的实现
2019/04/17 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
python进阶教程之循环对象
2014/08/30 Python
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
澳大利亚当地最大的时装生产商:Cue
2018/08/06 全球购物
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
大学生水果店创业计划书
2014/01/28 职场文书
英文求职信写作小建议
2014/02/16 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
Python多个MP4合成视频的实现方法
2021/07/16 Python
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL