对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列表操作之extend和append的区别实例分析
Jul 28 Python
Python切片知识解析
Mar 06 Python
Python利用前序和中序遍历结果重建二叉树的方法
Apr 27 Python
Python分支结构(switch)操作简介
Jan 17 Python
Python3.6日志Logging模块简单用法示例
Jun 14 Python
python 实现将字典dict、列表list中的中文正常显示方法
Jul 06 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
Python 保存矩阵为Excel的实现方法
Jan 28 Python
对Python获取屏幕截图的4种方法详解
Aug 27 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
Python能做什么
Jun 02 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
图书管理程序(一)
2006/10/09 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
python机器学习理论与实战(五)支持向量机
2018/01/19 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
Pytorch释放显存占用方式
2020/01/13 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
Python图像读写方法对比
2020/11/16 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
大学生应聘自荐信
2013/10/11 职场文书
实习教师个人的自我评价
2013/11/08 职场文书
后勤部长岗位职责
2013/12/14 职场文书
绿色学校实施方案
2014/03/31 职场文书
四风问题对照检查材料
2014/09/22 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
办公室主任个人总结
2015/02/28 职场文书
综合素质评价自我评价
2015/03/06 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书