对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爬虫之抓取糗事百科代码分享
Nov 06 Python
Python随机生成彩票号码的方法
Mar 05 Python
Python3.x版本中新的字符串格式化方法
Apr 24 Python
深入理解Python3 内置函数大全
Nov 23 Python
Python获取CPU、内存使用率以及网络使用状态代码
Feb 08 Python
python3调用R的示例代码
Feb 23 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
Python中作用域的深入讲解
Dec 10 Python
基于python二叉树的构造和打印例子
Aug 09 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
python logging通过json文件配置的步骤
Apr 27 Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 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在Web开发领域的优势
2006/10/09 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
PHP开发中常用的字符串操作函数
2011/02/08 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
php实现json编码的方法
2015/07/30 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
range 标准化之获取
2011/08/28 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
js闭包用法实例详解
2016/12/13 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
2020/07/21 Javascript
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
详解Python中第三方库Faker
2020/09/25 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
讲座主持词
2014/03/20 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
2014年评职称工作总结
2014/11/20 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
工作推荐信模板
2015/03/25 职场文书
期中考试后的感想
2015/08/07 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS