VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • 对Python函数设计规范详解

今天小编就为大家分享一篇对Python函数设计规范详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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函数设计规范详解就是小编

原文链接:https://blog.csdn.net/Field_Yang/article/details/80587895


相关教程