对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的Django框架中模板碎片缓存简介
Jul 24 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
Apr 10 Python
python引入不同文件夹下的自定义模块方法
Oct 27 Python
Python中的pathlib.Path为什么不继承str详解
Jun 23 Python
Python中关于浮点数的冷知识
Sep 22 Python
python编写猜数字小游戏
Oct 06 Python
django框架auth模块用法实例详解
Dec 10 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
wxpython自定义下拉列表框过程图解
Feb 14 Python
python解释器pycharm安装及环境变量配置教程图文详解
Feb 26 Python
基于python+selenium自动健康打卡的实现代码
Jan 13 Python
Python Matplotlib绘制等高线图与渐变色扇形图
Apr 14 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
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
PHP编码规范-php coding standard
2007/03/16 PHP
php通过session防url攻击方法
2014/12/10 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
javascript测试题练习代码
2012/10/10 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
2014/04/11 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
Python中类的继承代码实例
2014/10/28 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
python程序需要编译吗
2020/06/19 Python
Python 忽略文件名编码的方法
2020/08/01 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
html5开发之viewport使用
2013/10/17 HTML / CSS
土木工程实习生自我鉴定
2013/09/19 职场文书
车间班组长岗位职责
2013/11/13 职场文书
临床医学专业学生的自我评价分享
2013/11/21 职场文书
舞蹈教育学专业推荐信
2013/11/27 职场文书
教师实习自我鉴定
2013/12/18 职场文书
成都人事代理协议书
2014/10/25 职场文书
整改报告格式
2014/11/06 职场文书
2015年教师新年寄语
2014/12/08 职场文书
学生会辞职信
2015/03/02 职场文书
Python获取字典中某个key的value
2022/04/13 Python