对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的Tornado框架中session支持的实现代码
Aug 21 Python
Python Paramiko模块的安装与使用详解
Nov 18 Python
python print输出延时,让其立刻输出的方法
Jan 07 Python
python多任务及返回值的处理方法
Jan 22 Python
Python中print和return的作用及区别解析
May 05 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
python with (as)语句实例详解
Feb 04 Python
keras.layer.input()用法说明
Jun 16 Python
python解压zip包中文乱码解决方法
Nov 27 Python
Python中for后接else的语法使用
May 18 Python
Pytorch中Softmax与LogSigmoid的对比分析
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
Phpbean路由转发的php代码
2008/01/10 PHP
php正则校验用户名介绍
2008/07/19 PHP
php mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
javascript中的继承实例代码
2011/04/27 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
js验证上传图片的方法
2015/05/12 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
python3 flask实现文件上传功能
2020/03/20 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
python关于变量名的基础知识点
2020/03/03 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
电子商务专业个人的自我评价分享
2013/10/29 职场文书
运动会通讯稿100字
2014/01/31 职场文书
大四自我鉴定
2014/02/08 职场文书
开业庆典策划方案
2014/02/18 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
毕业论文评语大全
2014/04/29 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
vue3中provide && inject的使用
2021/07/01 Vue.js