对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代码
Mar 13 Python
python 实现插入排序算法
Jun 05 Python
python定时器使用示例分享
Feb 16 Python
python中MethodType方法介绍与使用示例
Aug 03 Python
Python字典及字典基本操作方法详解
Jan 30 Python
将tensorflow的ckpt模型存储为npy的实例
Jul 09 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
python中metaclass原理与用法详解
Jun 25 Python
Python+AutoIt实现界面工具开发过程详解
Aug 07 Python
pytorch 更改预训练模型网络结构的方法
Aug 19 Python
python 类之间的参数传递方式
Dec 20 Python
python图片指定区域替换img.paste函数的使用
Apr 09 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连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
php通过字符串调用函数示例
2014/03/02 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
JS实现文档加载完成后执行代码
2015/07/09 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
python文件操作之目录遍历实例分析
2015/05/20 Python
在Django的视图(View)外使用Session的方法
2015/07/23 Python
python绘制简单折线图代码示例
2017/12/19 Python
python画折线图的程序
2018/07/26 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
波兰珠宝品牌:YES
2019/08/09 全球购物
波兰在线杂货店:Polski Koszyk
2019/11/02 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
Kickers鞋英国官网:男士、女士和儿童鞋
2021/03/08 全球购物
财务管理个人自荐书范文
2013/11/24 职场文书
商务英语求职自荐信范文
2013/12/24 职场文书
优秀演讲稿范文
2013/12/29 职场文书
小学校长开学致辞
2015/07/29 职场文书