首页 技术 正文
技术 2022年11月11日
0 收藏 878 点赞 5,058 浏览 1951 个字

(1)要避免劣化代码

  1)避免只用大小写来区分不同的对象。如a是一个数值类型变量,A是String类型,虽在编码过程容易区分二者的含义,但这样做毫无益处,它不会给其他阅读代码的人带来多少便利。

  2)避免使用容易引起混淆的名称。如重复使用已经存在于上下文的变量来表示不同的类型;误用了内建名称来表示其他含义的名称而使之在当前命名空间被屏蔽;没有使用新建的数据类型的情况下使用类似于element、list、dict等作为变量名;使用字母小写o容易与1 混淆,1与字母L的小写。因此推荐变量名与要解决的问题域一致。有如下两个实例:

#示例1
def funA(list,num):
for element in list:
if num == element:
return True
else:
return Flase
#示例2
def find_num(searchlist,num):
for listValue in searchlist:
if num == listValue:
return True
else:
return False

  3)不用害怕过长的变量名。为了使得程序更易理解和阅读,有的时候变量名是必要的。不要为了少写几个字母而过分缩写。下例是一个用来保存用户信息的字典结构,变量名person_info比pi的可读性要强得多。

 >>> person_info = {'name':'John','IDCard':''}

(2)深入认识Python有助于编写Pythonic代码

可以从以下几个方面入手:

  1)全面掌握Python提供给我们的所有特性,包括语言特性和库特性。其中最好的学习方式应该是通读官方手册的Language Reference和Library Reference。

  2)深入学习业界公认的比较Pythonic的代码,如Flask、gevent和requests等。以requests这个通过HTTP(HTTPS)协议获取网络资源的程序库为例,要获取带有Basic Auth的网络资源时,代码如下:

 import requests
r = requests.get('https://api.github.com',auth=('user','pass'))
print(r.status_code)
print(r.headers[content-type])

而使用Python标准库httplib2时,代码就非常复杂,程序员需要了解相当多的关于HTTP协议和Basic Auth的知识才能编程。

 import urllib2
gh_url = 'https://api.github.com'
req = urllib2.Request(gh_url)
password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None,gh_url,'user','pass')
auth_manager =urllib2.HTTPBasicAuthHandler(password_manager)
opener = urllib2.build_opener(auth_manager)
urllib2.install_opener(opener)
handler = urllib2.urlopen(req)
print(handler.getcode())
print(handler.headers.getheader('content-type'))

最后,除了修炼内功外,也可以尝试利用工具达到事半功倍的效果。接下介绍风格检查程序PEP8。其实一开始PEP8是一篇关于Python编码风格的指南,它提出了保持代码一致性的细节要求。它至少包括了代码布局、注释、命名规范等方面的要求。比如对代码的换行,不好的风格如下:

if foo == 'blah': do_blah_thing()
do_one();do_two();do_three()

而Pythonic的风格是这样的:

if foo =='blah':
do_blah_thing()
do_one()
do_two()
do_three()

如果“人肉”检查代码是否符合PEP8规范,则比较困难,而容易跟同僚引发争论,所以有人开发了一个应用程序来进行检测,那就是PEP8应用程序。它是使用Python开发的,安装它很容易。

$ pip install -U pep8

在自己的shell中执行这一命令就可以安装成功了(首先安装pip),然后即可用它检测自己的代码。

$ pep8 --first test.py

值得注意的是,PEP8不是唯一的编程规范,同样PEP8也不是唯一的风格检测程序,类似的应用还有Pychecker、Pylint、Pyflakes等。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,495
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,909
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,741
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,496
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,134
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,298