对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正则匹配抓取豆瓣电影链接和评论代码分享
Dec 27 Python
Python内置的字符串处理函数详细整理(覆盖日常所用)
Aug 19 Python
Python实现的排列组合计算操作示例
Oct 13 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
Python补齐字符串长度的实例
Nov 15 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
python模拟点击网页按钮实现方法
Feb 25 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
May 18 Python
python中format函数如何使用
Jun 22 Python
用python写PDF转换器的实现
Oct 29 Python
Python闭包的定义和使用方法
Apr 11 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 表单提交给自己
2008/07/24 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
域名和cookie问题(域名后缀)
2012/10/10 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
JavaScript运算符小结
2015/06/03 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
node.js连接mysql与基本用法示例
2019/01/05 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
Python实现的二维码生成小软件
2014/07/11 Python
名片管理系统python版
2018/01/11 Python
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
一道Delphi上机题
2012/06/04 面试题
安全资料员岗位职责
2013/12/14 职场文书
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
母亲节感恩活动记录
2014/03/16 职场文书