原标题:Python 代码格式

在格式方面与其他大众语言相差不大,但也有它独特之处,尤其是代码缩进。在其他的编程语言中,代码缩进大多是为了美观,程序、函数的开始结束都是由花括号来控制的。在Python中却不一样,程序、代码块的开始结束都是由缩进来控制的。所以,首先要熟悉的就是Python的代码缩进。

1、Python代码缩进

Python的缩进一般来说是4个空格,先严格按照这种缩进方法来写个测试代码。

class TestBlank(object)

---- | ---- | def _init_(self):

---- | ---- | ---- | ---- | self.timeout=3

---- | ---- | ---- | ---- | self.url=' '

……………………

以上的代码中----|代表4个空格。这才写了个开头就得40个空格。要是只能这样写,那还是选择或者好了。好在还有备用方案,可以用Tab键来替代4个空格。这样的好处就是少按了很多次空格,坏处就是代码不好移植。在这台上可以运行的程序,换台可能就无法直接使用了。

既然变通了,那就变通到底好了。实际上这也是目前流行的做法,在自己的代码编辑器上将Tab键设置成4个空格就可以了。比如下的notepad++就可以在“设置|首选项|语言”菜单中选中以空格替代。其他的 IDE中都有类似的设定,自行摸索一下就可以了。下一般用的都是vi,那就更加简单了。在/etc/vim/vimrc或者~/.vim/vimrc中添加代码:

set ts=4

set expandtab

有的vi默认将tabstop定义成了8个空格。

Python每行代码前的缩进都有语法和逻辑上的意义。在严格要求的代码缩进之下,代码非常整齐规范,赏心悦目,提高了可读性,在一定程度上也提高了可维护性。

至于的缩进规则很简单。简单说就是,同一代码块纵向对齐。同级别函数(不存在调用关系的)纵向对齐,每次对齐都是4个空格的倍数。如果违反这些规则,是不会工作的,只会抛出一条冷冰冰的异常通知:SyntaxError: invalid syntax。

2、Python命名规则

对于给类、函数、变量取名,只要不违反命名规则,取任何名字都是可以的。要是不明白类、函数、变量的作用不是还有注释吗?的确是这样的。但如果能“望名生义”那又何必去添加多余的注释呢?另外,统一的命名法也令程序看起来赏心悦目。编写代码不能以书法让人愉悦,那就以名字和格式让人愉悦吧!

(1)匈牙利命名法

据说匈牙利命名法是一位叫Charles Simonyi的匈牙利发明的,后来他在微软待了几年,于是这种命名法就通过微软的各种产品和文档资料向世界传播开了。这种命名法的出发点是把变量名按属性+类型+对象描述的顺序组合起来,以使定义变量时对变量的类型和其他属性有直观的了解。

这种命名方法的确很好。可惜的是,的参数并不像、、一样,声明变量无须指定变量类型。而且在没用到 GUI前也不会遇到属性、对象什么的,所以这种命名法还是等到使用GUI时再使用吧。

(2)驼峰命名法

驼峰命名法又称骆驼式命名法(Camel-Case),是计算机程序编写时的一套命名规则(惯例)。正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。

驼峰式命名法就是当变量名或函式名是由一个或多个单词连在一起而构成的唯一识别字时,第一个单词以小写字母开始,第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。驼峰命名法又可以分为小驼峰命名法和大驼峰命名法。

变量和函数一般用小驼峰法标识,即除第一个单词之外,其他单词首字母大写。譬如:

def getUrl

urlSrc='http://www.baidu.com'

变量urlSrc第一个单词是全部小写,后面的单词首字母大写。

相比小驼峰法,大驼峰法把第一个单词的首字母也大写了,有时也被称为帕斯卡(pascal)命名法,常用于类名。譬如:

class MyLog(object):

(3)Guido推荐的命名规则

之父Guido推荐在Python中使用的命名方法,如表1所示。

表1 PythonName

命名约定如下:

●所谓“内部(Internal)”表示仅模块内可用,或者在类内是保护或私有的。

●用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含)。

●用双下划线(__)开头的实例变量或方法表示类内私有。

●将相关的类和顶级函数放在同一个模块里,不像Java,没必要限制一个类一个模块。

●对类名使用大写字母开头的单词(如CapWords,即Pascal风格),但是模块名应该用小写加下划线的方式(如lower_with_under.py),尽管已经有很多现存的模块使用类似于CapWords.py这样的命名,但现在已经不鼓励这样做,因为如果模块名碰巧和类名一致,就会让人困扰。

以上三种命名规则,可以任选一种或者组合使用,并没有强制要求。理论上来说,选择推荐的命名规则比较好,这也是Google推荐的命名规则。当然也可以不接受Google建议,选择自己喜欢的命名方法,只要自己能看懂,交流无障碍就可以了。

3、Python代码注释

一个好的,为代码添加注释是编码时必须要做的,但要确保注释中要说明的都是重要的事情,让其他人看一眼就知道代码是干什么用的。注释在任何语言的代码中都非常重要,没有哪一种语言是完全不需要注释的。在中,注释还有其他的作用。中的注释分为特殊注释、单行注释和多行注释。

(1)Python特殊注释

#!/usr/bin/python3 env

#-*- coding:utf-8 -*-

在所有的代码开头都有这两句(在中写代码可以不用第一行注释,但为了移植方便,让程序能直接在下运行还是加上这行比较好)。

以上特殊注释的第一行目的是指明Python编译器位置。第二行则指定了该程序使用的字符编码。指定字符编码还可以写成:

#coding:utf-8

3中默认的就是utf-8编码,但为了兼容Python 2还是加上这句比较好,Python 2使用的是acsii编码。

(2)Python单行注释

单行注释很简单。不管在代码的任何位置,只要是#之后的都是注释,但仅限于本行之内,不得换行。单行注释的代码如下:

self.timeout=5 #网络超时时间

self.fileName='./todayMovie.txt' #保存文件的位置

单行注释不需要刻意对齐,避免出现SyntaxError: invalid syntax的异常。

(3)Python多行注释

Python中的多行注释采取的是三个单引号'''或者三个双引号''''''。如果多行注释紧跟在定义类或者定义函数之后,则自动变成了该类或者函数的doc string。什么是doc string呢?简单地说就是模块、类、函数的功能注释。

写一个简单的例子,一试就清楚了。打开Putty连接到Linux,执行命令:

cd code crawler

vi annotation.py

annotation.py的代码如下:

4

5 class Annotation(object):

6 '''这是一个用户示范注释的类,

7 多行注释如果在类或者函数的定义之后,

8 将被默认成doc string。

9 这里注释的是该类的功能性说明'''

10 def __init__(self):

11 self.run

12

13 def run(self):

14 """函数里的doc string,

15 这里注释的是该函数的功能性说明

16 注释用单引号和双引号没有任何区别 """

17 x = 333 #定义了一个int类型的变量x

18 print('x = %d' %x)

19 '''好了,这里是单纯的注释了。可以注释多行,当然也可以注释单行了 '''

20

21

22 if __name__ == '__main__':

23 a = Annotation

在annotation.py中,第17行使用的是单行注释,第19行使用的是多行注释,其他的则是类和函数的doc string。至于doc string怎么显示,也挺简单的。打开Putty连接到Linux,执行命令:

python3

import annotation

print(annotation.Annotation._doc_)

print(annotation.Annotation.run._doc_)

执行结果如图1所示。

图1 注释和doc string

在编程时不加入注释,当时可能没什么问题,待到以后维护代码时就会发现那是相当痛苦的事情。返回搜狐,查看更多

责任编辑:

python代码格式-Python 代码格式相关推荐

  1. python代码格式-pyhon代码设计格式指南

    一 缘由: 经常看到周围人写的代码,在大公司有规范,很多人不乱写代码,但是在很多小公司,很多程序员都是半路出家,也不喜欢读书学习,导致写出来的代码乱七八糟.今天拜读了python编程这本书,作者把py ...

  2. python下载大文件mp4_Python代码打开本地.mp4格式文件的方法

    Python代码打开本地.mp4格式文件的方法 想通过编写Python代码来打开本地的.mp4格式文件,使用os模块来操作文件.我的电脑默认的是QQ影音播放器,执行Python代码打开默认播放器,播放 ...

  3. python爬取json数据_Python爬取数据保存为Json格式的代码示例

    python爬取数据保存为Json格式 代码如下: #encoding:'utf-8' import urllib.request from bs4 import BeautifulSoup impo ...

  4. Python爬虫数据存储不同格式在excel表中通用代码

    爬虫数据存储在excel表通用代码 一..xls格式 import xlwt #创建workbook对象 workbook = xlwt.Workbook(encoding='utf8') #添加sh ...

  5. Python入门-第一章Python基础(1.代码格式)

     hello,程序猿们,我是挪威森林的水手,从此篇文章开始,我将和大家一起从0基础开始学习Python,当然对于Python我也是初学者,大家可以相互多多交流,有好的意见大家可以在下面评论区多多交流, ...

  6. 用python画四叶草后输入到桌面上的代码-用 python 实现 xmind 和 mindjet 格式互转

    一直想找一款跨平台的免费又好用的思维导图软件,可是哪有两全其美的事呢,个人感觉安卓版的 mindjet 相对好用一些,windows 和 linux 版的 xmind 相对好用一些,但是 xmind ...

  7. python 的代码格式_python代码格式

    笨办法学 Python · 续 中文版 笨办法学 Python · 续 中文版 原书:Learn More Python 3 The Hard Way 译者:飞龙 自豪地采用谷歌翻译 在线阅读 PDF ...

  8. python读取mp4文件失败_Python代码打开本地.mp4格式文件的方法-mp4文件

    Python开发技术的应用相信有不少的小伙伴都有所了解,简单的说那就是非常的强大,Python开发技术的应用是非常广泛的,本篇文章扣丁学堂Python培训小编就给读者们分享一下Python代码打开本地 ...

  9. python合并音频和视频_ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码

    安装 官网下载 选择需要的版本 将解压后得到的以下几个文件放置在E:\FFmpeg下 环境变量 此电脑--属性--高级系统设置--环境变量 在系统变量(也就是下面那一半)处找到新建,按如下所示的方法填 ...

最新文章

  1. mysql读写分离(MySQL Proxy 安装和使用)
  2. 第十一届河南省赛--山区修路
  3. Django开发社交类网站必备的10个第三方应用
  4. 原生类型的autoboxing和auto-unboxing
  5. sqlserver 微信昵称_sql server用户名和登录名的区别和联系
  6. 中高级前端面试秘籍!金三银四如何直通大厂?!(长文)
  7. MySQL查询缓存设置提高MySQL查询性能
  8. 服务器下最大能容量多少文件,windows下一个文件夹下面最多可以放多少文件(ntfs格式略过)...
  9. Intent 与 IntentFilter 详解
  10. 在B/S开发中经常用到的javaScript技术(转载)
  11. c语言第三周编程作业答案,c语言程序设计第3周编程作业(数字特征)
  12. html 中shadow DOM 的使用
  13. 点分十进制转32位二进制数组
  14. 今日头条如何赚钱,今日头条赚钱规则,今日头条快速赚钱技巧
  15. PAT 甲级 1048 Find Coins
  16. 征途单机版场景服务器端口被占用,《征途单机版》构架攻略
  17. 基于networkx的《人民的名义》人物关系图
  18. 安全网关设备有哪些 安全网关产品介绍
  19. 计算机自动安装程序,如何防止软件自动安装软件?防止电脑自动安装软件的方法...
  20. RHEL8.0快速入门系列笔记--理论知识储备(一)

热门文章

  1. PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法,php/thinkphp实现微信分享自定义文字和图片...
  2. 关于Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file: 11043的解决办...
  3. Mybatis常见面试题(转)
  4. 注意python函数参数的可变变量的传递
  5. BZOJ2525 [Poi2011]Dynamite 【二分 + 贪心】
  6. redirect-action
  7. “稳定”凸包----poj1228
  8. Educational Codeforces Round 44 (Rated for Div. 2)
  9. 使用基本的socket函数
  10. python基础第六天