对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生成不重复随机值的方法
May 11 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
May 29 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
Jun 20 Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 Python
python pygame实现球球大作战
Nov 25 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
python shutil文件操作工具使用实例分析
Dec 25 Python
完美解决ARIMA模型中plot_acf画不出图的问题
Jun 04 Python
python向企业微信发送文字和图片消息的示例
Sep 28 Python
python基于opencv批量生成验证码的示例
Apr 28 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资源管理框架Assetic简介
2014/06/12 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
Jquery实现的角色左右选择特效
2014/05/21 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
PHP webshell检查工具 python实现代码
2009/09/15 Python
python字符串连接的N种方式总结
2014/09/17 Python
对于Python编程中一些重用与缩减的建议
2015/04/14 Python
Python使用sorted排序的方法小结
2017/07/28 Python
python selenium xpath定位操作
2020/09/01 Python
python中time tzset()函数实例用法
2021/02/18 Python
CSS3 border-radius圆角的实现方法及用法详解
2020/09/14 HTML / CSS
销售自我评价
2013/10/22 职场文书
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
先进个人总结范文
2015/02/15 职场文书
2014年底个人工作总结
2015/03/10 职场文书
SQL写法--行行比较
2021/08/23 SQL Server
关于PHP数组迭代器的使用方法实例
2021/11/17 PHP
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL