对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读写Excel文件方法介绍
Nov 22 Python
详解Python中内置的NotImplemented类型的用法
Mar 31 Python
利用Python爬取可用的代理IP
Aug 18 Python
Python实现扩展内置类型的方法分析
Oct 16 Python
Python操作mongodb数据库进行模糊查询操作示例
Jun 09 Python
pyhanlp安装介绍和简单应用
Feb 22 Python
python plotly绘制直方图实例详解
Jul 22 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
Django admin 实现search_fields精确查询实例
Mar 30 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
Python自省及反射原理实例详解
Jul 06 Python
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
May 12 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 Smarty date_format [格式化时间日期]
2010/03/15 PHP
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
Yii2框架数据验证操作实例详解
2018/05/02 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
js实现滚动条自动滚动
2020/12/13 Javascript
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
Python只用40行代码编写的计算器实例
2017/05/10 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
Python中的self用法详解
2019/08/06 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
班级课外活动总结
2014/07/09 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
公务员学习习总书记“三严三实”思想汇报
2014/09/19 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
2016十一国庆节感言
2015/12/09 职场文书